|
1b796c3f
|
2021-09-11T08:06:47
|
|
fix a null-pointer deref in 'got fetch -d'; reported by Omar Polo
|
|
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.
|
|
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
|
|
978a28a1
|
2021-09-04T16:22:38
|
|
make "got branch -d" print reference name and value
Also silence output of "got branch -d" in a regression test, from stsp.
ok stsp
|
|
69de9dd4
|
2021-09-03T09:02:06
|
|
limit checks for merge conflicts to files affected by the merge
Performance problems reported by naddy
|
|
6435d2a6
|
2021-09-02T21:43:35
|
|
sys/param.h is not needed
|
|
a16d97bd
|
2021-09-02T19:19:49
|
|
remove ancestry sanity checks from 'got cherrypick' and 'got backout'
While these checks might catch usage mistakes the performance overhead
of scanning the entire history of the current branch is not worth it.
Measurements provided by naddy, cherrypicking 5 commits of OpenBSD's
src repository in usr.bin/rsync:
Before: 5m50.33s real 4m02.36s user 2m04.41s system
After: 1m04.92s real 0m28.24s user 0m36.54s system
Further performance improvements could be needed but this is a first step.
|
|
e1d27370
|
2021-09-01T11:58:40
|
|
Fix ksh completion example to complete the first arg only; from Clint Pachl
|
|
eac1df47
|
2021-09-01T11:06:42
|
|
make 'got send' heed the branch {} options in got.conf(5); they were ignored
ok naddy
|
|
93f8a337
|
2021-08-30T16:34:04
|
|
tweak implementation of separate send {} and fetch {} conf blocks
Tweak man page.
Factor out repeated code in if/else branches in send_gotconfig_remotes().
ok stsp@
|
|
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
|
|
e385fc42
|
2021-08-30T15:48:05
|
|
use gmtime_r(3) instead of localtime_r(3) to display time in UTC as intended
Problem noticed by naddy due to failing regress tests at midnight, and then
analyzed with additional help from millert.
ok naddy
|
|
43e4eb1b
|
2021-08-29T07:28:01
|
|
Add got(1) command tab-completion for ksh(1) to EXAMPLES section.
Suggested by Clint Pachl, thanks!
|
|
27b75514
|
2021-08-28T10:46:51
|
|
do not send a pack file when 'got send' is only deleting branches
The git protocol spec says the client MUST NOT send a pack file
if the only command used is 'delete'.
Fixes 'got send -d' against Github's server which closed the session
upon receiving the empty pack file we sent. This problem wasn't caught
by regression tests since git-daemon does accept an empty pack file.
Problem reported by jrick.
|
|
2f1457c6
|
2021-08-27T16:48:53
|
|
allow deletion of refs/remotes/ branches with got branch -d
Also, make requirements for branch name arguments more flexible.
Absolute reference names are now accepted.
ok naddy@
|
|
a099809f
|
2021-08-27T07:44:17
|
|
more manual page updates following the introduction of 'got send'
|
|
93a300b2
|
2021-08-26T21:50:10
|
|
small man page spelling fixes
|
|
fd44090b
|
2021-08-26T19:53:20
|
|
tweak the man page section about 'got send'
In particular, attempt to describe the -f option better.
|
|
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.
|
|
aa8b5dd0
|
2021-08-01T12:59:32
|
|
fix a use-after-free in get_changed_paths() in got and tog
Once the parent commit is closed the tree_id1 pointer is no longer valid,
but the pointer was still being used. Make a deep copy to fix this issue.
|
|
161728eb
|
2021-07-24T09:08:52
|
|
add 'got fetch -X' option for deleting references created by 'got fetch'
|
|
da630daa
|
2021-07-16T11:30:37
|
|
make got_ref_delete() report symbolic references as intended
|
|
90830082
|
2021-07-16T11:28:01
|
|
in delete_ref(), only print progress output after deletion has succeeded
|
|
f9d54ee6
|
2021-07-16T11:13:12
|
|
align messages printed by 'got fetch -d' with 'got ref -d' and -X options
|
|
993f033b
|
2021-07-16T11:07:29
|
|
make 'got ref -d' print reference name and value like the new -X options do
|
|
643b85bc
|
2021-07-16T10:47:10
|
|
new -X option for removing backups created by got rebase and got histedit
ok semarie
|
|
ff56836b
|
2021-07-08T10:30:10
|
|
Make 'got add' always require the -I option in order to add ignored files.
|
|
e6786710
|
2021-07-03T22:08:15
|
|
mention 'gotadmin cleanup' wherever Git's garbage collector is mentioned
|
|
7e36bc2b
|
2021-06-25T09:23:51
|
|
move todo items from got.1 caveats to gotadmin.1 as appropriate
|
|
edeec58d
|
2021-06-25T09:22:59
|
|
remove a todo item from got.1 caveats; 'gotadmin pack' can pack repositories
|
|
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
|
|
3217be6d
|
2021-06-22T20:03:59
|
|
in got.1, add -I to the synopsis line of the status command
|
|
f6343036
|
2021-06-22T20:00:44
|
|
new -I option for 'got status' to show files which match an ignore pattern
|
|
1d0f4054
|
2021-06-17T08:56:43
|
|
check for close(2) error in got_repo_close() and propagate errors up
ok tracey
|
|
91c82228
|
2021-04-18T11:50:01
|
|
got.1: make double-quotes appear in the rendered man page as intended
Patch by Nam Nguyen
|
|
6c19a3dc
|
2021-04-10T13:37:59
|
|
add missing comma in SEE ALSO section of git-repository(5)
|
|
0a79feb1
|
2021-04-10T13:35:23
|
|
Xr gotadmin(1)
|
|
1795b260
|
2021-04-02T23:31:08
|
|
Fix "mandoc -T lint" WARNINGS and ERRORS, add missing word
|
|
1a1242a9
|
2021-04-01T19:28:57
|
|
diff: reduce duplicate code
Condense error checking to reduce a future diff moving those lines around;
this pattern is already used in other parts of the tree.
fine stsp
ok tracey
|
|
9e822917
|
2021-03-23T11:39:17
|
|
rebase/histedit -l: error out if no backups for the requested branch exist
|
|
e3199de8
|
2021-03-21T19:09:35
|
|
fix strftime return value check; found by jrick
|
|
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
|
|
601aba22
|
2021-03-21T19:08:46
|
|
improve got ref -d documentation: mention that objects won't be deleted
ok jrick
|
|
ec6d1a36
|
2021-03-21T18:49:57
|
|
Fix strftime(3) short buffer checks
strftime(3) returns 0 if the buffer was too short to write the
complete string (including NUL) and will never return more than
maxsize-1.
ok stsp
|
|
4e20a648
|
2021-03-21T16:39:29
|
|
Clarify log -x is inclusive
ok stsp
|
|
34d4e04c
|
2021-02-08T13:52:37
|
|
include remote branches in the output of 'got branch -l'
This makes it easier to discover the existence of copies of remote
branches in the local repository, and fixes a missing asterisk in
'got branch -l' while the work tree is switched to a remote branch.
Prompted by feedback from helg, thanks!
|
|
8ea5c997
|
2021-02-07T20:55:39
|
|
got info: fix a pasto in an error message
|
|
df3ed485
|
2021-01-31T11:57:10
|
|
simplify the error message shown when 'got rebase' has nothing to do
|
|
28cf319f
|
2021-01-28T17:06:22
|
|
add 'got commit -F' option to commit with a log message stored in a file
To avoid accidents commit -F opens the prepared log message in an editor
so it can be reviewed before the commit is created.
For non-interactive use the -N option is required in addition to -F.
ok millert@
|
|
a5a46be2
|
2021-01-27T22:20:52
|
|
in 'got clone', allow -l together with -q, for consistency with 'got fetch'
|
|
7b4f1fcb
|
2021-01-27T22:12:42
|
|
in got.1 fix a 'got branch' example which used obsolete syntax
|
|
56b63ca4
|
2021-01-22T11:04:47
|
|
make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere
ok millert, naddy
|
|
56d0a753
|
2021-01-20T21:07:46
|
|
let 'got clone' write gitconfig directives that match the generated got.conf
|
|
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.
|
|
5aa20203
|
2021-01-05T17:51:49
|
|
document that 'got clone -a' sets 'fetch-all-branches' in got.conf(5)
|
|
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.
|
|
132af4a5
|
2021-01-05T15:30:44
|
|
store all branches passed via 'got clone -b' in got.conf(5) and git-config(1)
|
|
612392ee
|
2021-01-05T14:01:16
|
|
allow the 'got fetch' -l option together with the -q option
Make use of this in tests to hide useless output from ssh(1).
|
|
15d3c221
|
2021-01-05T13:47:37
|
|
make 'got clone' pin the fetched branch in got.conf(5)
Avoids relying on the server-side HEAD ref by default during future fetches.
|
|
888b7d99
|
2020-12-26T23:18:45
|
|
make use of a reflist object id map in 'got log'
Impoves performance of 'got log' on the FreeBSD Git repo which can easily
contain more than 4000 references.
|
|
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
|
|
cc63216e
|
2020-12-26T12:23:23
|
|
update got.1 CAVEATS section; prompted by feedback from otto@
|
|
6059809a
|
2020-12-17T15:54:47
|
|
use size_t for loop indices to avoid signedness warnings; by emaste@freebsd
Same change as 16aeacf7088d, for subdirectories other than lib/
|
|
0d5bb276
|
2020-12-15T23:50:35
|
|
allow editing of log message comments with 'got histedit'
This makes it possible to remove just comment lines from log messages
during a histedit operation, leaving the rest of the log message as-is.
The behaviour of treating changes to comment lines as no-ops was coded
to prevent mistakes during 'got commit/import/tag', where the command
will error out if the log message template is not modified. This is not
appropriate for histedit because histedit is used to fix such mistakes.
ok millert@
|
|
71392a05
|
2020-12-13T11:43:41
|
|
prevent log message loss of folded commits during histedit
If the histedit log message editor exits without saving its buffer,
Got threw away log messages of all commits which were folded. Only the
last commit message is preserved, which could be something meaningless
like "fixup".
Instead, preserve the initial editor buffer content as-is.
That is not going to be an ideal log message, but doesn't throw away
information and stands out visually because the newly created log message
will start with a comment like '# log message of folded commit a0ff...'
Problem reported by jrick
|
|
b3805337
|
2020-12-13T11:40:10
|
|
histedit -f conflicts with -F option
Also fixed as part of a different patch from jrick
ok jrick
|
|
ff69268e
|
2020-12-13T11:38:48
|
|
use a helper function to generate error messages for mutually exclusive options
Inspired by a different patch from jrick
ok jrick
|
|
9f6bb280
|
2020-12-11T11:41:43
|
|
remove redundant explanation of histedit -f and -m options from got.1
|
|
b54435ba
|
2020-12-11T01:19:21
|
|
fix typo in got.1: "only if" -> "if only"; pointed out by tracey
|
|
2a78779e
|
2020-12-11T01:18:32
|
|
document that histedit -f can only be used if starting a histedit operation
|
|
466785b9
|
2020-12-10T23:24:31
|
|
add histedit -f flag for folding shortcut
"please push it" stsp
|
|
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.
|
|
4fedbf4c
|
2020-11-07T17:59:31
|
|
avoid got_repo_map_path() in 'got tree' if a work tree is available
Note that got_worktree_resolve_path() will return a path based on
the current working directory if the argument is the empty string.
This quirk keeps the behaviour of 'got tree' intact which depends
on the current working directory if run in a work tree.
ok naddy@
|
|
01740607
|
2020-11-04T20:18:53
|
|
avoid got_repo_map_path() in 'got blame'
'got blame' does not need access to the work tree. So far the work tree
was completely hidden with unveil(). We must now expose the work tree
while resolving the path, so unveil() calls are shuffled around slightly.
Failing realpath() calls would mess with path resolution otherwise.
There's a bug in got_worktree_resolve_path() where it failed to canonicalize
a path constructed from a user-specified path that does not exist on disk.
Note that this path falls into strncmp() a few lines down. I am fixing this
by adding canonicalization. Generally, joining paths with asprintf() and
comparing paths with strncmp() is fragile. A more general solution might be
needed but I am leaving that for another day.
ok naddy
|
|
7f9bfb31
|
2020-11-01T22:49:19
|
|
replace resolve_commit_arg() helper in got.c with got_repo_match_object_id()
|
|
579bd556
|
2020-10-24T13:18:03
|
|
prevent a NULL dereference if 'got log -p' runs against a root commit
|
|
603cdeb0
|
2020-10-22T20:37:50
|
|
make 'got log' avoid got_repo_map_path() if run in a work tree
ok naddy
|
|
62d463ca
|
2020-10-20T22:43:59
|
|
indentation fixes
|
|
54eb00d5
|
2020-10-20T22:25:57
|
|
properly handle nonexistent remote repository names given to 'got fetch'
found by jrick
ok naddy
|
|
f0207f6a
|
2020-10-19T23:14:59
|
|
switch to got_path_basename() in cmd_checkout()
ok millert
|
|
016859fc
|
2020-10-02T19:30:50
|
|
suggest aggregated pathnames in find(1) example
ok stsp
|
|
42a285e2
|
2020-10-01T20:52:12
|
|
unveil repositories read-write when adding tags with 'got tag'
|
|
6879ba42
|
2020-10-01T15:15:22
|
|
do not treat the -h and -V flags as errors
When run with the -h or -V option, output the help or version text
to stdout and exit with success (0). Only write usage and help
information to stderr and exit with error (1) if there is a mistake
in the command syntax.
tweak and ok stsp
|
|
f535bcd4
|
2020-09-30T16:38:17
|
|
fix 'bad path' error from 'got clone' by unveiling the repository path again
Problem found by jrick
|
|
9814e6a3
|
2020-09-27T14:55:18
|
|
prefer the BSD extension to reset getopt over the GNU one
Sadly there is no portable way to reset getopt(3).
BSD: optind = 1; optreset = 1;
GNU: optind = 0;
ok stsp
|
|
1367695b
|
2020-09-26T20:53:13
|
|
fix potential type mismatches between format specifiers and arguments
Cast printf arguments of type time_t and off_t to long long to match
the %lld format specifier on platforms where this might not be the
case. In parse.y, switch the number variable to long long because
all its interactions are with that type anyway.
ok millert stsp
|
|
bfa12d5e
|
2020-09-26T18:59:46
|
|
rework got's commit-time log message modification check
Use a new approach for detecting unchanged log messages: Strip comments
and leading/trailing empty lines from both the initial content and the
modified log message, then compare the result. Do not assume a fixed
upper limit for the length of a line.
Change suggested and patch tested by jrick
typo fix + ok naddy
|
|
820059fa
|
2020-09-25T22:49:42
|
|
whitespace fixes (patch by jrick)
|
|
b8adfa55
|
2020-09-25T21:35:10
|
|
add "branch" keyword to got.conf which specifies a list of branches to fetch
ok tracey
|
|
b08a0ccd
|
2020-09-24T14:39:18
|
|
do not pledge 'got integrate' in a PROFILE=1 build
found by jrick on freenode
|
|
04d9a9ec
|
2020-09-24T13:45:44
|
|
allow an interrupted 'got clone' to be resumed by 'got fetch'
Set up config files as soon as possible such that 'got fetch' has enough
information in order to resume an interrupted clone operation. We need to
receive at least a default HEAD branch name from the server before we can
set up our configuration files.
The previous code also verified whether the default branch name supplied by
the server resolved to a commit received in the pack file. This check cannot
be done early but a wrong branch name in a config file can be fixed easily.
|
|
7c0b7f42
|
2020-09-24T11:00:06
|
|
refactor code which creates config files for 'got clone' using helper functions
|
|
a9c2d4c2
|
2020-09-24T10:53:18
|
|
fix default branch name written to Git config file by 'got clone'
The generated Git config file instructed Git to fetch all branches rather
than the default branch as was intended.
Check generated configuration files in all clone tests in order to catch
such problems in the future.
|
|
2751fe64
|
2020-09-24T09:16:18
|
|
let 'got clone' try to connect to server before creating repository contents
|
|
521dbd35
|
2020-09-22T16:48:28
|
|
trim leading slashes from repository path written to got.conf (found by naddy)
|