|
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
|
|
9314b9f4
|
2020-11-06T21:12:26
|
|
test case for 'got integrate' failing if symlink changes to file; patch by jrick
This test verifies the current behaviour, even though it is not the most
desirable behaviour.
|
|
7f9bfb31
|
2020-11-01T22:49:19
|
|
replace resolve_commit_arg() helper in got.c with got_repo_match_object_id()
|
|
603cdeb0
|
2020-10-22T20:37:50
|
|
make 'got log' avoid got_repo_map_path() if run in a work tree
ok naddy
|
|
20b7abb3
|
2020-10-22T20:36:23
|
|
detect unknown repository format extensions (such as sha256 format)
ok millert
|
|
54eb00d5
|
2020-10-20T22:25:57
|
|
properly handle nonexistent remote repository names given to 'got fetch'
found by jrick
ok naddy
|
|
4a26d3f8
|
2020-10-07T22:37:48
|
|
fix a bug where 'got status' showed an unchanged empty file as changed
|
|
6b36edd8
|
2020-10-03T19:15:22
|
|
accommodate ls -l implementations that print "total 0" in an empty directory
ok stsp
|
|
6c8da0c6
|
2020-10-03T19:14:53
|
|
rewrite argument parsing with the POSIX getopts shell built-in
ok stsp
|
|
e5a14fe3
|
2020-10-01T20:52:11
|
|
missed one case while changing $() to `` (found by rczlonka)
|
|
743f0d3e
|
2020-10-01T20:52:11
|
|
add quotes around $GOT_TEST_ROOT and avoid mktemp -p; suggested by naddy
|
|
11f4fa81
|
2020-10-01T20:52:11
|
|
allow regress test data to be stored in locations other than /tmp
|
|
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.
|
|
0921e08f
|
2020-09-24T10:49:36
|
|
remove redundant leading slashes from repository path when parsing URIs
|
|
29c68398
|
2020-09-24T00:51:04
|
|
check final repository state in test_histedit_fold_add_delete
|
|
0a22ca1a
|
2020-09-23T22:31:00
|
|
make 'got histedit' collapse folded add+delete operations into a no-op
If a merged commit wants to delete a locally added file, and this locally
added file matches the content which was deleted in the commit being merged,
we can go ahead with the deletion because there is no risk of data loss.
fixes the histedit problem reported by jrick on freenode
|
|
ecfff807
|
2020-09-23T19:10:15
|
|
add an xfail test for a histedit issue where a deleted file remains
If a previous commit introduces a new file, and it is folded into a commit
that deletes the same file, the file still exists after the histedit.
reported by jrick on freenode
|
|
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.
|
|
2a104ff6
|
2020-09-21T23:37:54
|
|
make 'got ref -d' delete both loose and packed representations of the reference
|
|
c8c7d149
|
2020-09-17T18:59:48
|
|
expand arguments in shell script since brace expansion is not in POSIX
ok stsp
|
|
9439a990
|
2020-09-16T20:37:41
|
|
replace ksh syntax with POSIX arithmetic expressions
ok kn stsp
|
|
f6cae3ed
|
2020-09-13T14:05:17
|
|
switch function declarations from Korn shell to Bourne/POSIX shell syntax
ok stsp
|
|
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@
|
|
081470ac
|
2020-08-13T19:12:57
|
|
add -s option to 'got status' which acts as a status code filter
Advantages over using grep are that the list of codes is validated against
a list of known status codes, and that it is easier to match staged files
which can display status codes in one or both of two columns.
Prompted by feedback from krw@
|
|
7fb414ae
|
2020-08-08T07:34:47
|
|
add a -q option to tests for quiet output and use it for 'make regress'
Previous default output remains when test cases are run individually.
ok tracey
|
|
502b9684
|
2020-07-31T15:36:42
|
|
make 'got log' -R and -P options work in combination
With -R, the -P option did not show any paths.
Regression test added here demonstrates the problem.
|
|
f2b0a8b0
|
2020-07-31T12:54:34
|
|
fix committing file additions from a work tree with a path prefix
New files were added under the wrong tree in the repository if the work
tree has a path prefix. Fix this problem and catch it in the existing
commit_with_path_prefix regression test.
|
|
69d57f3d
|
2020-07-31T11:19:29
|
|
fix spurious 'got cherrypick' error with a path prefix and an empty tree
If the work tree's path prefix does not exist in the first of the two
trees, then 'got cherrypick' failed with "no such entry found in tree".
But this is a legitimate situation, as shown in the new test added here.
The first tree could be the empty tree, for example, which should result
in 'got cherrypick' adding all files from the second tree instead of
complaining about a non-existent path-prefix directory in the first tree.
|
|
b66cd6f3
|
2020-07-31T10:33:34
|
|
display more context info in "no such entry found in tree" error messages
|
|
41806587
|
2020-07-23T14:22:41
|
|
fix missing 'return 1' in commit.sh test failure cases
|
|
283102fc
|
2020-07-23T14:22:41
|
|
remove the symlink conflict header feature; it causes noise for little benefit
|
|
36bf999c
|
2020-07-23T14:22:40
|
|
make 'got unstage -p' work with symlinks
|
|
cf0e59fe
|
2020-07-23T14:22:40
|
|
fix wrong test result check in revert.sh symlink test
|
|
c2677d5d
|
2020-07-23T14:22:40
|
|
fix missing return statements in revert.sh symlink test failure cases
|
|
75f0a0fb
|
2020-07-23T14:22:39
|
|
stop reinstalling symlinks after commit; 'got update' can handle that
|
|
35213c7c
|
2020-07-23T14:22:39
|
|
forbid bad symlinks; add -S option to 'got commit' and 'got stage' to allow them
|
|
ea7786be
|
2020-07-23T14:22:38
|
|
make 'got unstage' work with symlinks
|
|
b7422a2f
|
2020-07-23T14:22:38
|
|
stop using realpath(3) to resolve a symlink target in install_symlink()
We should not resolve a symlink target path recursively when installing a
symlink in the work tree. We want to handle this symlink's target, not the
end result of following a chain of symlinks in case such links already exist.
|
|
369fd7e5
|
2020-07-23T14:22:38
|
|
add support for symlinks to 'got revert -p'
|
|
fa3cef63
|
2020-07-23T14:22:37
|
|
make 'got stage -p' work with symlinks
|
|
0aeb8099
|
2020-07-23T14:22:37
|
|
set a staged file type and handle it separately from the on-disk file type
|
|
c631b115
|
2020-07-23T14:22:36
|
|
make staging of symlinks work
|
|
4901ccfc
|
2020-07-23T14:22:35
|
|
add a test for 'got revert' with symlinks
|
|
3b9f0f87
|
2020-07-23T14:22:35
|
|
handle additional symlink conflicts and report skipping of unversioned files
|
|
c90c8ce3
|
2020-07-23T14:22:35
|
|
preserve unversioned files when merging added symlinks
|
|
fba9f79c
|
2020-07-23T14:22:34
|
|
restore unversioned file test case in test_cherrypick_symlink_conflicts
One part of current behaviour is to delete an unversioned file and replace
it with a symlink; that's very bad in case the user wants to keep the file.
|
|
d219f183
|
2020-07-23T14:22:34
|
|
test_cherrypick_symlink_conflicts forgot to run 'got add' on a file; fix this
|
|
88fb31d4
|
2020-07-23T14:22:33
|
|
extend test_commit_symlink test case
|
|
e8863bdc
|
2020-07-23T14:22:33
|
|
add symlink support to 'got import'
|
|
993e2a1b
|
2020-07-23T14:21:31
|
|
handle symlink deletion and symlink conflicts during 'got update'
|
|
11cc08c1
|
2020-07-23T14:21:31
|
|
handle symlink conflicts by installing a file that contains conflict markers
|
|
e26bafba
|
2020-07-23T14:21:31
|
|
add cherrypick test for symlink conflict cases
This test accepts the current behaviour, even though the current behaviour
isn't ideal in some cases.
|
|
5a1fbc73
|
2020-07-23T14:21:30
|
|
make it possible to fix "bad" symlinks with ln -sfh + got commit + got update
|
|
75c30427
|
2020-07-23T14:21:30
|
|
remove debugging test code
|
|
bd6aa359
|
2020-07-23T14:21:30
|
|
convert bad symlinks to regular files during 'got commit'
|
|
3d9a4ec4
|
2020-07-23T14:21:30
|
|
add symlink support to 'got commit'
|
|
af57b12a
|
2020-07-23T14:21:30
|
|
add symlink support to 'got cherrypick'; test non-conflict cases only for now
|
|
40dde666
|
2020-07-23T14:21:29
|
|
add support for symlinks in the repository to 'got diff'
|
|
4135d7d0
|
2020-07-23T14:21:29
|
|
fix symlink change in test_diff_symlinks_in_work_tree
|
|
39449a05
|
2020-07-23T14:21:29
|
|
make 'got diff' show changes to symlinks in a work tree
|
|
7d61d891
|
2020-07-23T14:21:29
|
|
fix checkout of symlinks when a relative work tree path is given
|
|
906c123b
|
2020-07-23T14:21:29
|
|
do not allow symlinks pointing into the .got directory; noticed by semarie
|
|
23b820a2
|
2020-07-23T14:21:29
|
|
remove unnecessary lines from test_cat_symlink
|
|
73259b37
|
2020-07-23T14:21:29
|
|
add a symlink test for 'got cat'
|
|
eb59b6d4
|
2020-07-23T14:21:28
|
|
show path in error message when blaming a symlink pointing to a directory
|
|
0587e10c
|
2020-07-23T14:21:28
|
|
add symlink support to 'got blame' and 'tog blame'
|
|
64773fde
|
2020-07-23T14:21:27
|
|
expand test cases in test_rm_symlink
|
|
d4ae64fa
|
2020-07-23T14:21:27
|
|
extend test_status_symlink to cover removal and modification of symlinks
|