|
be33dff7
|
2022-05-13T15:28:04
|
|
got patch: fail when reading empty hunks
|
|
cab5dc8b
|
2022-05-10T11:22:34
|
|
hook cmdline send tests up for 'make regress', this was forgotten
|
|
4379a9aa
|
2022-05-02T08:38:43
|
|
got patch: handle git-style rename diffs
extend the support for git-style diffs to include the "pure rename"
case, i.e. when a file is renamed without any edits.
ok stsp@
|
|
bad961bf
|
2022-04-23T10:39:47
|
|
got patch: allow to reverse a patch
add a flag to got_patch to reverse a patch before applying and the -R
flag for `got patch'.
ok stsp@
|
|
15e1bda6
|
2022-04-23T10:26:47
|
|
test `got patch' vs path-prefixes, relative paths and strip
reminded by and 'looks fine' to stsp@
|
|
f1d6cebb
|
2022-04-23T09:33:14
|
|
typos
|
|
ed3bff83
|
2022-04-23T07:56:18
|
|
got patch: resolve paths from the current working directory
this allow to apply patches from subdirectories of the work tree root.
Prodded by naddy@, ok stsp@.
|
|
3313bcd8
|
2022-04-19T16:57:25
|
|
delete trailing whitespaces
|
|
c036d108
|
2022-04-15T18:14:01
|
|
redirect jot(1) output instead of looping over it; ok tb@
|
|
20e420c8
|
2022-04-11T13:33:54
|
|
add a -q (quiet) option to 'gotadmin pack'
|
|
29e0594f
|
2022-04-09T17:34:51
|
|
make gotadmin pack -x option work with tag arguments
|
|
67ba6161
|
2022-04-08T09:14:02
|
|
leave work tree in a usable state after 'got rebase' fails path-prefix checks
reported by naddy
|
|
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@
|
|
49c543a6
|
2022-03-31T20:41:38
|
|
use test(1) -eq and -ne to compare integers, and reduce quoting
This brings the rest of the regression test scripts in line with
patch.sh.
|
|
b3c57ab2
|
2022-03-22T11:20:46
|
|
got patch: handle "\ No newline at end of file"
|
|
7a30b5cb
|
2022-03-20T08:54:45
|
|
got patch: prefer new name if not /dev/null and not a git-style diff
This fixes a common issue when for e.g. generating patches with
$ diff -u foo.orig foo
where 'got patch' failed because 'foo.orig' has an 'unexpected status'.
prodded by naddy, 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@
|
|
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@
|
|
95d68340
|
2022-03-16T18:23:03
|
|
got patch: create missing directories when adding files
ok stsp@
|
|
2be5e1a2
|
2022-03-16T18:23:03
|
|
got patch: keep permissions after patching a file
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!
|
|
5b67f96e
|
2022-03-13T15:36:59
|
|
got patch: require exact match when removing files
|
|
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.
|
|
a84c0d30
|
2022-03-12T21:30:23
|
|
fix 'got status' with an obstructed file given as argument; found by Omar
|
|
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.
|
|
81a19701
|
2022-03-10T20:28:20
|
|
ref.sh: fix pastos and report the actual command that was run
|
|
bfbccd0a
|
2022-03-08T12:22:36
|
|
use test(1) -eq and -ne to compare integers; ok tb
|
|
fd79e2e0
|
2022-03-08T12:22:36
|
|
typos
|
|
e9ce266e
|
2022-03-07T22:26:08
|
|
add `got patch' command for applying unified diffs
|
|
bdc78ba6
|
2022-02-16T16:32:54
|
|
display GMT offset in cat command
ok stsp
|
|
32b5305f
|
2022-02-12T09:34:03
|
|
new test: `got diff' on files matched by an ignore pattern
|
|
1d918cf9
|
2022-02-06T14:56:36
|
|
improve error message due to malformed `author' in got.conf
tweak and ok stsp@
|
|
692bdcc4
|
2022-01-25T22:48:26
|
|
make 'got rm' report an "unexpected status" error for unversioned files
ok millert@
|
|
4e12cd97
|
2022-01-25T22:48:26
|
|
make 'got rm' behave like rm(1) for paths found missing on disk
ok millert@
|
|
72840534
|
2022-01-19T12:04:58
|
|
compress delta data from delta_cache directly into pack file
|
|
a8a244dd
|
2022-01-03T11:50:14
|
|
simpler fix equivalent to the previous commit
|
|
5988bab1
|
2022-01-03T11:48:22
|
|
make test_cherrypick_root_commit pass with GOT_TEST_PACK=1
|
|
c861864b
|
2022-01-03T11:34:34
|
|
'got stage' tests rely on unreferenced loose objects; disable GOT_TEST_PACK=1
|
|
6fa5c67c
|
2022-01-03T11:16:56
|
|
remove loose objects if running tests with GOT_TEST_PACK
|
|
0a26275f
|
2022-01-03T11:11:06
|
|
use 'gotadmin pack' instead of 'git repack' if testing with GOT_TEST_PACK
|
|
10b394ac
|
2021-11-23T12:52:59
|
|
regress: make merge.sh more POSIXy
Don't use '==' for equality matching in sh, as this won't work across
all shells.
ok @naddy
|
|
566e0ee7
|
2021-11-22T22:32:25
|
|
regress: make test operands POSIX compliant
Since the interpreter for the regress shell scripts are using /bin/sh
this will usually imply some level of POSIX compliance (that isn't
bash-specific, for instance).
Some systems use dash as their sh shell and as such is stricter POSIX
compliance. To help -portable, make the shell test checks use a single
'=' for equality, rather than '=='.
|
|
0e039681
|
2021-11-15T17:00:36
|
|
preverse binary files during updates and merges
|
|
3d42b266
|
2021-11-03T21:42:33
|
|
switch branches during noop rebases
Always update to the specified branch even if the branch is already
rebased (no commits needed to be rebased, and the branch does not need
a fast forward). With the old behavior of erroring and staying on the
current branch, I sometimes found myself ignoring the error message,
treating it as information and assuming the branch update, and later
on committing on top of origin/main instead of the main branch.
feedback and ok stsp
|
|
92410079
|
2021-10-16T14:50:03
|
|
fix regression where 'got send -T' failed if same tag already exists on server
Problem reported and fix tested by Omar Polo.
|
|
b4e0802f
|
2021-10-14T18:52:27
|
|
FreeBSD's ed(1) does not accept "0i"; use the equivalent "1i" instead
|
|
8f2ca62d
|
2021-10-13T10:34:06
|
|
do not skip ignored directories in 'got status' if they contain tracked files
Fixes regression introduced by commit 41f061b2f459318f3738f59d7676efccc4beb344
where tracked files inside an ignored directory were reported as missing.
|
|
10a623df
|
2021-10-11T18:38:33
|
|
sort and de-duplicate work tree path command line arguments
This is important in cases like 'got diff file.txt file.txt' which
should only show the diff for file.txt once.
suggested by kn@
|
|
f10244c0
|
2021-10-11T18:25:11
|
|
fix merging of files which contain a dot on a line by itself
Annoying bug which we inherited from OpenRCS which inherited
it from OpenBSD's diff3 program.
ok tracey millert
|
|
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@
|
|
138e4f47
|
2021-10-09T19:47:15
|
|
display the requested object type when an object could not be found
ok millert@
|
|
c1e86b1d
|
2021-10-08T11:53:05
|
|
add an xfail test for a bug in merging content with a dot on a line by itself
|
|
09209b8a
|
2021-10-08T08:34:39
|
|
add test for merge result when lines are inserted at the top of a file
Based on a patch by Omar Polo
|
|
e7ffb0b0
|
2021-10-07T21:13:05
|
|
add support for multiple path arguments to 'got diff'
positive feedback from Omar and kn
ok kn
|
|
41f061b2
|
2021-10-05T14:06:02
|
|
ignore unversioned files while aborting rebase, histedit, merge or operations
ok jrick
|
|
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
|
|
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
|