|
b93c7142
|
2021-10-01T06:22:27
|
|
add histedit -e option which runs the 'edit' script command for every commit
ok jrick
|
|
78caff98
|
2021-09-30T08:24:01
|
|
explicitly set the default branch name after 'git init' in regress tests
We need to do this because newer versions of Git support an arbitrary default
branch name which can be set by users. We don't want tests to fail when this
option is used.
pointed out by Thomas Adam
|
|
1fa49072
|
2021-09-28T21:30:53
|
|
interrupt 'got rebase' upon missing/unversioned/not-deleted files
|
|
c1b05723
|
2021-09-28T20:56:05
|
|
make 'got merge' interrupt the merge upon undeleted and unversioned files
|
|
35ca1db7
|
2021-09-28T20:56:04
|
|
print additional stats about things that went wrong during a merge
|
|
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@
|
|
088449d3
|
2021-09-26T17:51:38
|
|
implement 'got merge -n' which interrupts before creating a merge commit
|
|
4e91ef15
|
2021-09-26T17:51:35
|
|
make it possible to merge vendor branches with 'got merge'
|
|
5267b9e4
|
2021-09-26T11:41:40
|
|
allow bad symlinks to survive a merge
Commands which perform merges will now install bad symlinks as symlinks
in the work tree, instead of creating them as regular files. This means
bad symlinks committed with 'got commit -S' (or Git) will be preserved.
The decision to introduce a bad symlink is done at commit-time and
merges should not forcefully reverse this decision.
The cherrypick and backout commands require a manual commit step, and
a merge result with bad symlinks will require use of 'got commit -S'.
Additional testing by thomas adam
|
|
f6764181
|
2021-09-24T21:52:59
|
|
fix 'got update' of an added + obstructed file
When 'got update' tried to add a new file to the work tree and this
file was obstructed by, say, a directory on disk, the update failed:
$ got update
? new
got: new: Is a directory
$
And the work tree was not updated.
With this commit this situation is properly detected as an obstruction
and the update succeeds:
$ got update
~ new
Updated to refs/heads/master: c1f85b4938dc4c668a88f13df2b98a520fc077cc
File paths obstructed by a non-regular file: 1
$
Extend a corresponding test case to cover this issue.
ok tracey
|
|
1acd48bc
|
2021-09-24T20:47:39
|
|
stop caring about obstructed versioned files in 'got merge'
Tyring to write a test to cover this case I found that obstructed files
are (correctly) detected as local modifications in the work tree. Thus
they trigger the pre-condition check for local modications and 'got merge'
will not even start to do any work in the presence of obstructed files.
|
|
a6a8f8bb
|
2021-09-24T20:05:26
|
|
add a test for 'got merge' which covers a no-op merge situation
|
|
f259c4c1
|
2021-09-24T19:55:02
|
|
add a 'got merge' command for creating merge commits
Additional testing by Thomas Adam.
ok tracey
|
|
3af9de88
|
2021-09-22T13:32:37
|
|
fix 'got send' with tree objects which contain symlinks; reported by Omar
|
|
ad324bf5
|
2021-09-21T20:27:45
|
|
fix histedit_no_op test which was failing randomly
A no-op replayed history ends up having exactly the same commit IDs
if all commits are created at roughly the same moment in time.
There are no content changes involved so if commit timestamps do not
differ then commit hashes will be the same. In which case there is no
fork in history for 'got histedit -l' to display, yet the test was
always expecting a fork in history to be displayed.
Update the test to take this issue into account. The test will now pass
no matter which result is produced by the histedit operation.
Problem found by Lucas who observed that this test was randomly failing.
Patch also provided by Lucas.
|
|
67d7451c
|
2021-09-15T08:29:53
|
|
shell code fixes
Escape sequences are not handled by every echo(1), e.g. not on FreeBSD.
'?' is a glob character and must be quoted.
'!' is not a shell meta character.
ok tracey stsp
|
|
f0fd0aaf
|
2021-09-14T19:21:59
|
|
make 'got send' regression tests run 'git fsck' on all involved repositories
|
|
c2105d00
|
2021-09-14T19:02:10
|
|
fix another instance of 'got send' sending branches the server already has
|
|
e3a46353
|
2021-09-14T16:37:50
|
|
verify that 'got status -s' and 'got status -S' cannot be used together
|
|
4f3c844b
|
2021-09-14T16:12:52
|
|
make 'got update' display the worktree's branch name upon success
ok tracey
|
|
67c65ed7
|
2021-09-14T15:47:30
|
|
add tests for checkout -q, update -q, and status -S. ok stsp
|
|
08e5873e
|
2021-09-14T14:05:27
|
|
make 'got checkout' display the checked out reference and commit ID
ok tracey
|
|
26960ff7
|
2021-09-14T09:52:49
|
|
make 'got send' properly send commits which are referenced only by tags
Problem reported by Omar Polo.
|
|
1b796c3f
|
2021-09-11T08:06:47
|
|
fix a null-pointer deref in 'got fetch -d'; reported by Omar Polo
|
|
678d8c1f
|
2021-09-10T20:55:39
|
|
fix name of temporary directory used by test_fetch_delete_remote_refs
|
|
2e601464
|
2021-09-06T10:49:29
|
|
fix regress/fetch build; broken by my renaming of got_fetch_parse_uri()
|
|
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
|
|
0baddd91
|
2021-09-03T09:11:36
|
|
add test which covers a cherrypick merge from a branch to itself
|
|
ed99f061
|
2021-09-03T09:02:06
|
|
add a test case which covers 'got cherrypick' in a mixed-commit work tree
|
|
243a13f5
|
2021-09-02T19:13:50
|
|
fix bogus error when 'got cherrypick' merges changes into a locally added file
reported by + ok naddy
|
|
4c662b1d
|
2021-09-01T13:44:53
|
|
fix test data directory name used by test_histedit_fold_add_delete
|
|
eac1df47
|
2021-09-01T11:06:42
|
|
make 'got send' heed the branch {} options in got.conf(5); they were ignored
ok naddy
|
|
3a6b8760
|
2021-08-31T19:18:37
|
|
use the POSIX-compliant "date -u" command to return UTC time; ok stsp
|
|
dc8256b6
|
2021-08-31T19:18:37
|
|
"got blame" now shows UTC dates, adapt regression test; 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
|
|
a9662115
|
2021-08-29T13:01:47
|
|
add missing "return 1" to failure handling in the regress scripts
ok stsp@
|
|
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@
|
|
1bd76734
|
2021-08-26T13:41:59
|
|
fix the output of 'got send -d' upon success
Previous output was: Already up-to-date
New output is: Server has deleted refs/heads/branch
Check this behavour in the related regression test.
|
|
f9756a57
|
2021-08-26T12:30:42
|
|
Use POSIX-compatible syntax in send.sh tests. Patch by naddy@
|
|
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.
|
|
3379373c
|
2021-08-26T12:00:16
|
|
use POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ]
|
|
ef8ec606
|
2021-07-27T13:08:52
|
|
prevent a race where 'gotadmin cleanup' deletes concurrently created objects
|
|
161728eb
|
2021-07-24T09:08:52
|
|
add 'got fetch -X' option for deleting references created by 'got fetch'
|
|
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
|
|
6843859a
|
2021-07-09T09:45:36
|
|
display recovery steps in the lonely pack index error message
|
|
ff56836b
|
2021-07-08T10:30:10
|
|
Make 'got add' always require the -I option in order to add ignored files.
|
|
1124fe40
|
2021-07-07T17:21:52
|
|
handle pack index files which lack a corresponding pack file
ok millert
|
|
c294a758
|
2021-07-04T20:57:19
|
|
GOT_TEST_PACK=1 is incompatible with cleanup tests
|
|
9188bd78
|
2021-07-03T22:51:03
|
|
add support for the preciousObjects Git extension to 'gotadmin cleanup'
|
|
e6786710
|
2021-07-03T22:08:15
|
|
mention 'gotadmin cleanup' wherever Git's garbage collector is mentioned
|
|
88ba8483
|
2021-07-03T19:51:55
|
|
ls -1 is a no-op when stdout is redirected to a file; pointed out by naddy
|
|
854ca8a0
|
2021-07-03T19:50:34
|
|
use posix = instead of ==; reminded by naddy
|
|
b3d68e7f
|
2021-07-03T19:49:37
|
|
implement 'gotadmin cleanup'
|
|
8775a682
|
2021-07-03T15:41:31
|
|
use POSIX [ s1 = s2 ] syntax instead of [ s1 == s2 ]
|
|
2c41dce7
|
2021-06-27T15:30:08
|
|
allow obstructed files skipped by 'got update' to be updated again
|
|
a769b60b
|
2021-06-27T09:22:52
|
|
fix a bug where files skipped by 'got update' could not be updated again
ok semarie@
|
|
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
|
|
1c4cdd89
|
2021-06-20T21:07:54
|
|
fix bogus 'permission denied' error when a file at work tree root is removed
ok naddy
|
|
f34b169e
|
2021-06-18T13:28:25
|
|
Allow for skipping the base object header in got_deltify().
|
|
8e09a168
|
2021-06-17T14:26:45
|
|
fix hang in commit regress test. ok stsp
|
|
54d5be07
|
2021-06-03T13:12:58
|
|
fix unrelated changes being merged by got cherrypick/backout/rebase/histedit
This was a long-standing and very annoying bug.
The two xfail tests in the cherrypick test suite are passing now.
|
|
3cd22b21
|
2021-05-31T09:19:13
|
|
add an xfail test for a cherrypick bug where unrelated changes get merged
The test case I am using here is a bit large but I could not yet find a way
to make it smaller. If someone knows a smaller test case, please let me know.
naddy caught a small bug in the new test code I had written, thanks!
|
|
57c18198
|
2021-05-24T18:25:19
|
|
validate reference names in open_ref()
This catches invalid reference names passed to 'got ref -l' and will also be
needed to validate reference names passed to a future 'gotadmin pack' command.
ok naddy@
|
|
cce854ad
|
2021-04-13T09:51:56
|
|
add tests for the bug fixed in commit 1fee9f40e2ed335d4ec8899954b59b43990b97c3
one of these tests is still failing; there is another edge case left to fix
|
|
c6e8a826
|
2021-04-05T17:55:12
|
|
do not update symlinks which are already up-to-date
This fixes spurious 'U' notifications for symlinks during 'got update'
that occurred even when the work tree was fully up-to-date.
Observed on a work tree of the FreeBSD src repo and reproduced in our
test suite by adding a no-op update at the end of a test which deals
with updating symlinks.
|
|
9e822917
|
2021-03-23T11:39:17
|
|
rebase/histedit -l: error out if no backups for the requested branch exist
|
|
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
|
|
8704c7ce
|
2021-03-10T22:49:21
|
|
add a simple deltify test
|
|
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@
|
|
6e210706
|
2021-01-22T23:49:46
|
|
implicitly mark all files in work tree as up-to-date after 'got integrate'
Avoids having to run 'got update' for no good reason after 'got integrate'.
The same change was made recently for both rebase and histedit in
commit a615e0e7796ea1103a6e0d4b5dbb6134597886660 and we forgot about histedit.
|
|
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
|
|
d51387a0
|
2021-01-19T11:11:16
|
|
expand coverage of test_update_single_file: test file deletion during update
|
|
79775c2f
|
2021-01-19T11:09:49
|
|
fix copy-pasta in test_update_single_file
|
|
194cb7cb
|
2021-01-19T07:38:37
|
|
fix bug where 'got up -c commit path' deleted unrelated files from work tree
Problem reported by Timo Myyrä
|
|
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.
|
|
98f64f14
|
2021-01-05T17:17:58
|
|
work around spurious ACK responses from git servers in got-fetch-pack
The Git server can apparently send duplicate ACK responses even though we
do not enable the multi_ack capability. According to the Git protocol docs
the server should only send ACKs after receiving 'done' from the client if
multi_ack has been enabled.
However, a duplicate ACK response can be triggered by running 'got fetch -a'
in our fetch_update_tag test. This resulted in the following error:
got-fetch-pack: unknown side-band received from server
got: bad packet received
|
|
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.
|
|
54c39596
|
2020-12-28T17:38:34
|
|
use POSIX [s1 = s2] syntax instead of [s1 == s2]; patch by Ryo ONODERA
|
|
a4153d5b
|
2020-12-17T23:13:10
|
|
more concise fix for path_list_reverse_input() crash; suggested by millert
|
|
8891c2ab
|
2020-12-17T20:46:54
|
|
fix crash in path_list_reverse_input() after switch to unsigned loop index
|
|
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/
|
|
a615e0e7
|
2020-12-16T00:08:58
|
|
implicitly mark all files in work tree as up-to-date after rebase/histedit
This should always be correct, since rebase and histedit start out with a
clean and single-base-commit worktree, and end up committing all changes
across the entire work tree when they are successful.
tested by jrick and myself
|
|
a347e6bb
|
2020-12-13T13:19:10
|
|
test behaviour of histedit -f with an empty log message
|
|
239f5c5a
|
2020-12-13T13:11:23
|
|
add a basic test case for histedit -f
|
|
c5fdccbf
|
2020-12-10T08:08:42
|
|
fix expected output of test_tree_submodule_of_same_repo for packed repos
|
|
578133c9
|
2020-11-28T18:28:10
|
|
replace echo with printf, stop option processing with "--" for portability
ok stsp
|
|
1cb46f00
|
2020-11-21T15:34:19
|
|
consistently label removed files as "/dev/null" in diff headers
|
|
64453f7e
|
2020-11-21T13:35:00
|
|
handle binary files in got/tog diff commands; add -a options to force text
|
|
dffd0deb
|
2020-11-20T13:57:55
|
|
add a test for diffing binary files; got diff behaves like 'diff -a'
|
|
c27a5e66
|
2020-11-18T13:48:26
|
|
new blame algorithm which compares commit N-1 to N; with help from Neels
|
|
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.
|
|
f6d8c0ac
|
2020-11-09T16:04:18
|
|
fix replacing symlinks with files
And add a test case which verifies that the inverse also works,
i.e. a symlink being replaced with a regular file.
problem reported and fix tested by jrick
|