Commits
- Commit:
cd634f2d6d87577ed25d69f9b9a9d07c990a4223
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
make 'got status' display interrupted rebase, histedit, and merge operations
When an operation is interrupted add a trailing message to status output
which displays the operation and branches involved.
This information will be useful when diagnosing problem reports and it
helps new users with contextualizing multi-operation work tree state.
ok op@
- Commit:
d4b2e62d5cb4bd0757706877687d1c2bcb15f30c
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
initialize and tidy up *branch_ref in got_worktree_histedit_continue()
- Commit:
4f46fcf8880d657db0e339f7e3f0c72dc1dad27a
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
fix use of uninitialized variable in update_blob
spotted by smatch. ok millert@
- Commit:
9c57c4c6816e643da8209cd6d1b7479cd1672114
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
fmt
- Commit:
5f42e012bf1e465b1053e2ee9ba0cbb097643169
- From:
- Kyle Ackerman <kackerman0102@gmail.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
plug memleak of the ignore list in 'got status'
Found/reported and patch by Kyle Ackerman.
ok op@
- Commit:
b2dcbbc7f5e06e14e36426f8d1eea7806c6b144b
- From:
- Kyle Ackerman <kackerman0102@gmail.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
plug pathlist leak in 'got status' code path
Patch by Kyle Ackerman.
- Commit:
aaf972e2369e5926a83162de108b6826f44e4a48
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
actually detect modified files when checking out with -E
When checking out over a pre-existing directory tree with -E, got
would store the checkout timestamp in the fileindex and so not
detect local edits until those files are touch(1)ed again. Instead,
detect that a file already exists during checkout and don't update
its {c,m}time, leaving them to zero (the epoch), so a subsequent
`got status' will look at its contents.
While here, change the status char for such file from ? to E, which
is what the manpage actually documents.
Issue reported by naddy@
ok stsp@
- Commit:
97f9158ff1c6468a2c80a195ed39dd5ee0ae600d
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
fix deletion of missing locally-added files
If a locally added file in A status gets deleted from disk it will
move into missing ! status. If the user then decides to delete the
file we must remove the file index entry immediately rather than
flagging the file for removal during the next commit operation.
The file was never committed and lacks a base-blob and base-commit,
so it cannot be removed during the next commit. As a result the
commit operation was reporting a bogus "out of date" error.
Found while diagnosing a related bug reported by gonzalo@
ok op@
- Commit:
720b08bca9347796473f8c8c4c6a1f43df62c320
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
prevent a double-free in got_worktree_commit
If creating the /tmp display diff for a commitable item failed we
would free the commitable item while it was already on the path list.
Later on when the path list was freed in got_worktree_commit() a
double-free would be detected and the program would be aborted.
Found by gonzalo@
ok op@
- Commit:
4c3671a956b34d28010bc174d1e337c6ee43c8ec
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
allow modified files to be deleted during merges if content exists in the repo
This makes histedit folding work when a file is modified by commit A
and then deleted in commit B, with A being folded into B.
Problem reported by naddy@
- Commit:
d1c85b424404fbdc9500dcdf4ecf4b418bf5ec1f
- From:
- Omar Polo <op@omarpolo.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
pass the right callback argument for check_mixed_commits
- Commit:
eb6fb9cdfb8f52fcb6baf65ca864b8e506f64901
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
fix some non-idiomatic calls of the cancellation callback
This callback could return any error code. Do not mask all such
errors as cancellation.
- Commit:
6ebb22635171b6f1ad080fe10bf7b13133312957
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
add cancellation support to the mixed-commits checker in worktree.c
- Commit:
92845f0980b93eaf2ac1688899791f74af66a521
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
load tog's worktree base commit marker in the log thread for startup speed
Walking the whole file index can take some time. Avoid delaying the perceived
start-up time of tog by reading the file index in the background log thread.
Problem pointed out by op@
with fixes from + ok jamsek
- Commit:
349dfd1ee9fe854ee194e3c9c46c494e932a7d00
- From:
- Mark Jamsek <mark@jamsek.dev>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
tog: show work tree base commit marker in log view
If tog is invoked in a work tree, prefix the base commit log message summary
line with a '*' if the work tree is up-to-date, and with a '~' if the base
commit is not up-to-date with respect to the branch tip or it contains mixed
commits. While here, plug a couple worktree leaks in cmd_ref() and cmd_tree().
ok stsp@
- Commit:
ad10f64ebeae9e8625205b8ef468ce58e03db95b
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
use a separate .cvg meta data directory for cvg(1) work trees
This prevents mixing the use of got and cvg clients in the same work tree.
Avoids confusion going forward while cvg differentiates itself further.
tog(1) and gotadmin(1) remain compatible with both work tree formats.
These tools only read work trees to locate the corresponding repository.
- Commit:
59530ea7aaf19f809c3dbcec5e2d9e039a54349f
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
prevent useless EEXIST errors filling up the global custom error array
While checking out files, do not attempt to create every directory
that exists in the repository tree without paying consideration to
their existence on disk.
Instead, let functions which add files worry about creating any missing
parent directories. This shakes out two other bugs in broken symlink
installation code which ended up passing an absolute path to
add_dir_on_disk() and forgot to report progress in an unreachable code
path that is now getting used.
Problem reported by + ok naddy@
- Commit:
fcfaa6d5834dc35cb5555fcc4cb1652947bfd82d
- From:
- Josh Rickmar <jrick@zettaport.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
Make got_worktree_get_base_ref_name static
Nothing appears to benefit from this being non-static, and it was
missing from the public API headers as well.
ok stsp@
- Commit:
a807c50bd11f3ba2b72a8d02a1714efd21c2799c
- From:
- Josh Rickmar <jrick@zettaport.com>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
Define apply_umask earlier, without predeclaration
ok op@
- Commit:
b21ebdb07f917bc6e7026654dfbcddc6d3162383
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
make 'got add' more forgiving about unversioned paths on the command line
When users run 'got add *' the shell may pick up already versioned files
and trigger errors about paths being in an unexpected status. Expand the
check which previously only allowed files in added status to be double-added
to cover the following status codes which are all safe to ignore: A M C m
This should make bulk additions of files a bit easier in most cases.
Problem reported by robert@
ok jamsek
- Commit:
2b72f32d6817b003f88452592f304c2e114617be
- From:
- James Cook <falsifian@falsifian.org>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
Implement fast-forward merges.
Split part of got_worktree_merge_prepare into a new function,
got_worktree_merge_write_refs, since that part doesn't make sense in the
fast-forward case.
ok stsp@
- Commit:
fe3f264bd2e2cae213952619831d4719dd6d1f11
- From:
- James Cook <falsifian@falsifian.org>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
make 'got merge -c' fail even if new changes only affect unrelated paths
Otherwise, 'got merge -c' can silently revert already committed changes.
Also fix GOT_ERR_MERGE_COMMIT_OUT_OF_DATE by giving it a value distinct
from GOT_ERR_MERGE_STAGED_PATHS.
Patch by James Cook
- Commit:
8ec7352a93a3c62a7786b92e4183aa7cb0b34869
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
only delete empty directories appearing in arguments to 'got rm'
Make 'got rm' keep empty directories which are not explicitly listed for
deletion. Deleting such directories is problematic in several use cases.
Avoids deleting the current working directory when the user runs "got rm *"
(pointed out by Mikhail), and avoids deletion of an empty directory "foo/"
after 'got rm foo/a foo/b' (pointed out by op@).
ok jamsek, op
- Commit:
1678610c6d5112a48cd47219c8bd4ef423d31e63
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
allow no-op merge commits to be created
Requested by James Cook
- Commit:
538aebb56b973dea6dee4dbde0ecfc4043bd6738
- From:
- Stefan Sperling <stsp@stsp.name>
- Via:
- Thomas Adam <thomas@xteddy.org>
- Date:
fix 'got commit' using a bad parent commit ID when worktree is out-of-date
Problem reported by James Cook with reproduction scripts
Regression test case by jamsek, as a simplified version of James' scripts
fix tested + ok jamsek