|
d7b5a0e8
|
2022-04-20T14:00:12
|
|
inline struct got_object_id in struct got_object_qid
Saves us from doing a malloc/free call for every item on the list.
ok op@
|
|
a7472cb3
|
2022-04-14T15:00:59
|
|
check return value of RB_INSERT; ok + memleak fix by op@
|
|
392891ce
|
2022-04-07T13:20:47
|
|
pass an already open commit object to the blame callback
ok op@
|
|
a44927cc
|
2022-04-07T12:57:31
|
|
stop relying on commit cache for good performance of got_object_id_by_path()
Instead of internally opening and closing the same commit object over and
over again, require callers to pass an open commit object in. Avoids an
inherent dependency on the commit object cache for reasonable performance.
ok op@
|
|
9d6cabd5
|
2022-04-07T09:28:59
|
|
got patch: allow to strip path components
Move some bits from the libexec helper to the main process so we know if
the patch was generated by git or not and finally document the automatic
stripping of a/ and b/ prefixes added by git-diff(1).
ok stsp@
|
|
78f5ac24
|
2022-03-19T15:06:37
|
|
move got_patch file status checking in worktree.c
check_file_status used got_worktree_status to check if the file was in
an allowed state, but it's wrong since the callback is not invoked on
unchanged files.
While here also fix a relate bug: unlink(newpath) is in the wrong spot
and ends up removing files even when it shouldn't, so move it early in
the got_worktree_schedule_* error handling.
Finally, update the appropriate test case. It was passing before
because got_worktree_schedule_add returned GOT_ERR_FILE_STATUS, not
because check_file_status failed.
ok stsp@
|
|
70cc9832
|
2022-03-19T14:19:19
|
|
move got_errors[] table into a single compilation unit (error.c)
ok stsp
|
|
60aa1fa0
|
2022-03-17T16:38:43
|
|
augment patch progress callback with hunks info; recover from errors
Augment got_patch_progress_cb by providing the hunks that were applied
with offset (or that failed) and the recoverable error encountered
during the operation (bad status, missing file, ...)
got_patch now proceeds when a file fails to be patched and exits with
GOT_ERR_PATCH_FAILED if no other errors are encountered.
While here, also add a test for the 'hunk applied with offset' case and
shrink test_patch_dont_apply and illegal_status by taking advantage that
'got patch' doesn't stop at the first error. (And add some other cases
to illegal_status too.)
discussed with and ok stsp@
|
|
b22138f5
|
2022-03-16T15:41:10
|
|
introduce got_patch_progress_cb
This introduce a proper got_patch specific progress callback that is
invoked after processing a patch. It also drops the hackish printf in
the modified case and takes `nop' out of the struct got_patch.
ok stsp
|
|
b8af7c06
|
2022-03-15T10:45:02
|
|
print additional progress information while packing
ok op@
|
|
899fcfdf
|
2022-03-13T20:31:44
|
|
add a dry-run/nop mode for got patch
with lots of help from stsp for the manpage bits!
|
|
dbda770b
|
2022-03-13T15:36:56
|
|
check file status before applying the patch
Don't allow `got patch' to delete files that are not known, or add files
that are already known and to edit files that are known, not obstructed
and without conflicts.
|
|
6e96b326
|
2022-03-12T16:02:51
|
|
refactor apply_patch to support renaming files
add two helper functions (schedule_add, schedule_del) and move the guts
of apply_patch into a new function `patch_file'. This simplifies
apply_patch and makes easier to figure out what happens.
Then, drop GOT_ERR_PATCH_PATHS_DIFFER since we allow the to rename
files.
|
|
4be911ed
|
2022-03-10T22:17:13
|
|
fix got_repo_match_object_id() docstring, it is not specific to commits
This was a leftover from got_repo_resolve_commit_arg() which was superseded
in commit 71a276322e39e17baf5697b5daac8e8fe6ad2ae1
|
|
d955343d
|
2022-03-08T16:01:03
|
|
pass the callback data instead of hardcoding NULL, ok stsp
|
|
e9ce266e
|
2022-03-07T22:26:08
|
|
add `got patch' command for applying unified diffs
|
|
1d918cf9
|
2022-02-06T14:56:36
|
|
improve error message due to malformed `author' in got.conf
tweak and ok stsp@
|
|
4e12cd97
|
2022-01-25T22:48:26
|
|
make 'got rm' behave like rm(1) for paths found missing on disk
ok millert@
|
|
c0df5966
|
2021-12-31T09:33:01
|
|
wrap overlong lines
|
|
2d497592
|
2021-11-20T10:40:33
|
|
implement got_reflist_sort() which sorts a ref list in-place
|
|
0e039681
|
2021-11-15T17:00:36
|
|
preverse binary files during updates and merges
|
|
67b631c9
|
2021-10-10T15:22:14
|
|
implement 'got diff -c' for diffing commits with optional filtering by path
Need for filtering by path sugggested by kn@
ok naddy@
|
|
0ff8d236
|
2021-09-28T06:59:08
|
|
show commit progress output when 'got merge -c' is used
Otherwise no progress output is shown at all with this command.
Commit progress output will also display any additional changes
which resulted from conflict resolution.
ok millert@
|
|
4e91ef15
|
2021-09-26T17:51:35
|
|
make it possible to merge vendor branches with 'got merge'
|
|
5c02d2a5
|
2021-09-26T17:40:10
|
|
for portability, handle errno variations upon open(2) failure with O_NOFOLLOW
Problem pointed out by naddy for FreeBSD -portable.
Discussed with millert, thomas adam, and naddy.
|
|
f259c4c1
|
2021-09-24T19:55:02
|
|
add a 'got merge' command for creating merge commits
Additional testing by Thomas Adam.
ok tracey
|
|
9b21d88f
|
2021-09-06T13:27:08
|
|
remove obsolete sentence from got_dial_parse_uri() docs
|
|
76b9ee43
|
2021-09-06T10:55:54
|
|
mention where the 'proto' parameter of got_dial_apply_unveil() comes from
|
|
cbf435dd
|
2021-09-06T10:53:46
|
|
fix documentation of got_dial_apply_unveil()
|
|
a5a30f30
|
2021-09-06T10:52:02
|
|
document functions declared in the public got_dial.h header file
|
|
baf82978
|
2021-09-06T10:51:30
|
|
remove declaration of got_fetch_parse_uri()
|
|
5e5da8c4
|
2021-09-05T20:51:29
|
|
rename got_fetch_parse_uri() to got_dial_parse_uri()
This function is now being used by both 'got fetch' and 'got send' so
its former name was misleading.
|
|
77d7d3bb
|
2021-09-05T20:39:50
|
|
de-duplicate a constant used by both 'got fetch' and 'got send'
Both GOT_FETCH_PKTMAX and GOT_SEND_PKTMAX had the same value.
Declare this value as GOT_PKT_MAX in got_lib_pkt.h instead.
|
|
d65a88a2
|
2021-09-05T20:19:14
|
|
move duplicated dial_ssh() and dial_git() functions into a common file
These functions are used by 'got send' and 'got fetch' in order to
open network connections to a server. Move them into new file lib/dial.c
and declare relevant functions in got_dial.h and lib/got_lib_dial.h.
No functional change.
|
|
abc59930
|
2021-09-05T19:41:03
|
|
indentation fixes
|
|
6480c871
|
2021-08-30T15:51:23
|
|
provide separate send {} and fetch {} configuration blocks in got.conf
Feature requested by naddy.
ok naddy, who also suggested some tweaks that will arrive shortly
|
|
f8a36e22
|
2021-08-26T12:30:42
|
|
add 'got send' command for sending changes to remote repositories
Known to work against git-daemon and github Git server implementations.
Tests by abieber, naddy, jrick, and myself.
Man page additions reviewed by Lucas.
|
|
63e5aa5c
|
2021-08-23T10:51:48
|
|
Expose got_ref_name_is_valid() for general purpose use.
This will be needed for a future 'got send' command.
|
|
cce2f485
|
2021-08-22T12:56:14
|
|
expose got_ref_resolve_symbolic() at the public library API
This will be needed by a future 'got send' command.
|
|
72acb3d8
|
2021-08-06T12:43:33
|
|
remove unused 'repo' argument from got_reflist_insert()
|
|
ef8ec606
|
2021-07-27T13:08:52
|
|
prevent a race where 'gotadmin cleanup' deletes concurrently created objects
|
|
3f338f0a
|
2021-07-27T13:08:51
|
|
track the last modification time of references
|
|
6843859a
|
2021-07-09T09:45:36
|
|
display recovery steps in the lonely pack index error message
|
|
d5c81d44
|
2021-07-08T11:03:29
|
|
verify object ID checksums while loose objects are being accessed
|
|
1124fe40
|
2021-07-07T17:21:52
|
|
handle pack index files which lack a corresponding pack file
ok millert
|
|
9188bd78
|
2021-07-03T22:51:03
|
|
add support for the preciousObjects Git extension to 'gotadmin cleanup'
|
|
b3d68e7f
|
2021-07-03T19:49:37
|
|
implement 'gotadmin cleanup'
|
|
dbdddfee
|
2021-06-23T20:48:35
|
|
switch from SIMPLEQ to equivalent STAILQ macros
The singly-linked tail queue macros were added to OpenBSD 6.9 and
are more widely available on other systems.
ok stsp
|
|
f6343036
|
2021-06-22T20:00:44
|
|
new -I option for 'got status' to show files which match an ignore pattern
|
|
05118f5a
|
2021-06-22T19:37:20
|
|
implement gotadmin pack, indexpack, and listpack commands
|
|
779e1159
|
2021-06-18T14:14:49
|
|
expose the reflist_insert() helper function as got_reflist_insert()
This will be needed by 'gotadmin pack'.
|
|
9ca9aafb
|
2021-06-18T13:36:51
|
|
introduce got_object_id_queue_copy()
This will be required by a future 'gotadmin pack' command.
|
|
74a2356f
|
2021-06-18T13:34:45
|
|
add a user data pointer to struct got_object_qid
This will be required by a future 'gotadmin pack' command.
|
|
20662ea0
|
2021-04-10T13:31:30
|
|
introduce 'gotadmin info'
|
|
e600f124
|
2021-03-21T19:09:35
|
|
ensure that old commits remain referenced after rebase and histedit
Create automatic "backup" references which ensure that objects from
the pre-rebase or pre-histedit state remain in the repository.
A new -l option for 'got rebase' and 'got histedit' lists old commits.
This makes it easier to recover from botched rebase or histedit operations.
Removal of such objects currently requires got ref -d and git-gc.
This will be made more convenient in the future.
testing and ok jrick
|
|
99495ddb
|
2021-01-10T23:48:51
|
|
add a 'reference' directive to remote repositories in got.conf(5)
Make use of this in 'got clone' to persist -R option arguments given on
the command line in the cloned repository's got.conf(5) file.
|
|
0c8b29c5
|
2021-01-05T17:22:14
|
|
add a 'fetch-all-branches' configuration setting to got.conf(5)
Set fetch-all-branches in the got.conf(5) file created by 'got clone -a'
in order to make a future 'got fetch' act like 'got fetch -a' by default.
|
|
f193b038
|
2020-12-26T22:39:55
|
|
rename got_reflist_object_map_free to got_reflist_object_id_map_free
|
|
d9dff0e5
|
2020-12-26T21:32:01
|
|
switch reflist to TAILQ; insert elements more efficiently for sorted input
ok naddy
|
|
84de9106
|
2020-12-26T20:48:43
|
|
Add a refs argument to got_repo_match_object_id(), replacing 'resolve_tags'
Make use of this where possible to avoid re-reading references from disk.
ok naddy
|
|
7b5b670e
|
2020-12-25T21:38:17
|
|
implement an object ID map for reference lists
ok naddy
|
|
6d5a9006
|
2020-12-16T11:16:27
|
|
add fd field to got_repository, modify got_packidx_open to use fds
These changes are intended to make got more compatible with
FreeBSD's Capsicum.
ok stsp
|
|
73e7eb7d
|
2020-12-15T23:45:34
|
|
add got_error_fmt()
got_error_fmt() could eventually replace got_error_path() which has already
been used to construct errors with strings that are not actually paths...
ok millert@
|
|
4cc6a5a5
|
2020-12-15T22:42:20
|
|
add got_error_from_errno_fmt() for more flexibility in error messages
suggested by and ok millert
|
|
41ad2652
|
2020-12-04T20:27:43
|
|
remove unused function got_path_get_absolute(); realpath(3) is usually better
|
|
64453f7e
|
2020-11-21T13:35:00
|
|
handle binary files in got/tog diff commands; add -a options to force text
|
|
be659d10
|
2020-11-18T17:18:23
|
|
fix type of filesize output parameter of got_object_blob_dump_to_file()
|
|
8fa913ec
|
2020-11-14T13:19:18
|
|
remove now pointless 'check_disk' parameter of got_repo_map_path()
suggested by naddy
|
|
fe621944
|
2020-11-10T22:54:37
|
|
merge new diff implementation from the git.gameoftrees.org diff.git repository
This new diff implementation was started by Neels Hofmeyr during the u2k20
hackathon and now replaces diffreg.c code lifted from the OpenBSD base system.
The integration of this code into Got was done by me.
Got now uses the patience diff algorithm by default.
The diff.git repository will remain the primary repository for the diff code,
which already compiles and runs on other operating systems such as Linux.
Any fixes and improvements for files inherited from the diff.git repository
should be written against that repository and synced to got.git afterwards.
|
|
20b7abb3
|
2020-10-22T20:36:23
|
|
detect unknown repository format extensions (such as sha256 format)
ok millert
|
|
0c4004e3
|
2020-10-20T21:09:00
|
|
handle non-const dirname(3) in got_path_dirname()
ok naddy
|
|
562386c5
|
2020-10-19T23:14:59
|
|
update got_path_basename() doc string
ok millert
|
|
b8adfa55
|
2020-09-25T21:35:10
|
|
add "branch" keyword to got.conf which specifies a list of branches to fetch
ok tracey
|
|
48cae60d
|
2020-09-22T00:03:02
|
|
make dangling symbolic references show up in 'got ref -l'
Storing a resolved ID for each reference list item was a bad idea.
This ID cannot be resolved if a symbolic references points to a reference
which does not exist. Such symrefs were skipped by got ref -l as a result.
Just let users of reference lists resolve the IDs as needed.
|
|
50b0790e
|
2020-09-11T17:04:57
|
|
add per-worktree got.conf(5) file in the .got directory; ok millert
|
|
257add31
|
2020-09-09T23:57:40
|
|
add got.conf(5) configuration file
ok tracey
|
|
766841c2
|
2020-08-13T19:12:57
|
|
add -s option to 'got remove' which deletes files in a particular status
This makes it easy to deal with files that were deleted from disk by external
tooling which modified the work tree. Such files are left in missing (!)
status and can now be marked for deletion in bulk via 'got rm -s\! -R .'
For consistency, modified (M) files can now be removed with 'got rm -s M'
which implies 'got rm -f'.
Prompted by feedback from krw@
|
|
b2118c49
|
2020-07-28T20:17:19
|
|
Add a 'got info' command which displays work tree meta-data.
Remove the alias 'got in' for 'got init'.
The 'in' alias was too close to either 'init' or 'info'.
ok tracey, millert
|
|
35213c7c
|
2020-07-23T14:22:39
|
|
forbid bad symlinks; add -S option to 'got commit' and 'got stage' to allow them
|
|
af57b12a
|
2020-07-23T14:21:30
|
|
add symlink support to 'got cherrypick'; test non-conflict cases only for now
|
|
e40622f4
|
2020-07-23T14:21:28
|
|
add got_object_tree_entry_is_symlink() and got_object_resolve_symlinks()
|
|
8ba819a3
|
2020-07-23T14:21:27
|
|
let 'got checkout' create symlinks in a work tree
|
|
20ccae39
|
2020-07-21T14:19:32
|
|
cope with directory entries returned from readdir(3) with type DT_UNKNOWN
Such directory entries need special handling to make our directory traversal
code work on filesystems that do not support the d_type optimization.
I found this problem because references stored in the refs/ directory were
not shown by 'got log' and 'tog log' when a repository is mounted over NFS.
helpful feedback + ok millert@
|
|
fb863fa4
|
2020-06-22T15:06:23
|
|
get a parser in place for the future inclusion of gotconfig to git repos
this is for got push and got fetch, primarily
ok stsp
|
|
0d6c6ee3
|
2020-05-20T17:37:29
|
|
make 'got/tog tree' show symlink targets like 'ls -lF' does: link@ -> target
|
|
0208f208
|
2020-05-05T09:53:57
|
|
show a list of paths changed in a commit with 'got log -P', and in tog
requested by matthieu@
|
|
5036ab18
|
2020-04-18T18:40:00
|
|
make 'got update' skip conflicted files
ok millert@
|
|
f7b97ccb
|
2020-04-14T11:37:39
|
|
normalize tree entry modes to 0100644 or 0100755 when writing tree objects
semarie@ reported an error from go-git used by Cirrus CI:
"57243613255d758e15b0f5ae1c960b970f0435f8: malformed mode (0100640)!"
'git fsck' has no problem with mode 0100640. But writing just the two
most commonly used file modes should provide the best compatibility.
|
|
d7b899ab
|
2020-03-25T15:55:22
|
|
fix got_ref_change_symref(); it changed the ref's name instead of its target
|
|
678ade17
|
2020-03-22T15:44:34
|
|
don't error out if rebase sees no merged paths; elide the commit instead
|
|
e8a967e0
|
2020-03-21T22:44:07
|
|
make replacing symrefs actually work in 'got fetch'
|
|
0e4002ca
|
2020-03-21T21:49:13
|
|
add support for fetching arbitrary references to 'got clone' and 'got fetch'
|
|
2690194b
|
2020-03-21T18:17:12
|
|
remove GOT_FETCH_DEBUG and toggle fetch debug output with -v option instead
|
|
9c52365f
|
2020-03-21T10:37:19
|
|
properly terminate the ssh process after fetching via SSH
|
|
41b0de12
|
2020-03-21T10:18:15
|
|
add support for listing remote branches and tags to 'got clone' and 'got fetch'
|
|
4ba14133
|
2020-03-20T20:23:18
|
|
add support for fetching specific branches to 'got clone' and 'got fetch'
|
|
659e7fbd
|
2020-03-20T15:55:08
|
|
fetch only HEAD branch and tags by default; add -a option to fetch everything
|
|
469dd726
|
2020-03-20T11:44:14
|
|
add support for repository mirrors to 'got clone' and 'got fetch'
|
|
f1c6967f
|
2020-03-19T22:43:44
|
|
fix chopped display of git-server's progress output
|
|
7848a0e1
|
2020-03-19T16:57:27
|
|
implement 'got fetch'
|