Commit Briefs

b584caa3e8 Mark Jamsek

show worktree UUID in backout/cherrypick -l output

When run from the repository, display the UUID to help the user know which logmsg refs belong to which work tree. Also, use "backout" or "cherrypick" in the log message header to distinguish output from 'got log'. Suggested by stsp on irc. ok stsp@


def2bea2b9 Mark Jamsek

regress: commit coverage for the new logmsg ref feature

This tests we correctly: - use multiple logmsg refs in one commit; - use only relevant refs involving affected paths; - use refs when some of the affected paths are reverted; - neither use nor remove refs if all affected paths are omitted from the commit; - use refs when previously excluded paths are later committed. - remove corresponding temp merged_log 'got-logmsg-*' files hints and ok stsp@


21f0772650 Stefan Sperling

require space between commit author name and email, for Git compatibility

Allowing such author fields breaks 'got send' towards Github for affected commits because git-index-pack --strict will error out on the server: $ git index-pack --strict pack-de791fb6a3a1961e44ac5d98d72fd533bf9277c8.pack error: object 5d6bde9eaaf27f41ae8fa7112bb45e489d3c16b9: missingSpaceBeforeEmail: invalid author/committer line - missing space before email fatal: fsck error in packed object problem encountered by landry@ ok op@


f1aec6edf3 Stefan Sperling

fix regression test failures with Git 3.30.5 / 2.38.1 or later installed

The fix for CVE-2022-39253 in Git made our regression tests fail since creating submodules from local clones is no longer allowed by default. Add an override to our invocations of "git submodule add", the same which was added to Git's regression test suite as part of their fix. This CVE doesn't otherwise affect us. We do not implement submodules. Our use of them in regression tests exists only to ensure that Got does not freak out when it sees one. Precisely because automated support for nested repositories and/or working copies (as in Git Submodules, or Subversion Externals, etc.) have been an endless source of security problems in other systems. sudden test failures pointed out by naddy@



7370f8029c Omar Polo

use GOT_IGNORE_GITCONFIG in regress

fixes test_rebase_no_author_info when a valid ~/.gitconfig is found. ok stsp@


62b21d332b Omar Polo

got commit: add flag to specify the author

This adds a new flag, `got commit -A', that allows to specify the commit author but retains the "committer" (which is obtained as usual via GOT_AUTHOR, got.conf or git config.) with lots of help from and ok stsp


cf208ddd0e Omar Polo

fix email address parsing

we were both too strict and too lose. To avoid breaking got object parser (and to some extent ours too) we need to ensure that there aren't any line feeds, extra < or > and no trailing gibberish. The '@' is not actually required in the email. various tweaks and ok stsp


230e1f1bfa Stefan Sperling

regress: use bs=1M for dd, not bs=1m; fixes -portable test failure on ubuntu

GNU dd only accepts upper-case letters for the size units.


8469d82143 Stefan Sperling

always show commit or tree IDs in diff header, in order to help 'got patch'

The idea is that got patch can simply look for a line such as: commit - abcde1234567... to find the merge base commit ID to show in diff3 conflict markers. got log -p now displays commit IDs in its diff header, instead ofl tree or blob IDs. ok op@


49c543a6fe Christian Weisgerber

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.


1d918cf99e Omar Polo

improve error message due to malformed `author' in got.conf

tweak and ok stsp@



4f3c844bea Stefan Sperling

make 'got update' display the worktree's branch name upon success

ok tracey



a966211500 Christian Weisgerber

add missing "return 1" to failure handling in the regress scripts

ok stsp@


8e09a16893 Tracey Emery

fix hang in commit regress test. ok stsp


28cf319f78 Stefan Sperling

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@



c8c7d149fe Christian Weisgerber

expand arguments in shell script since brace expansion is not in POSIX

ok stsp


f6cae3ed1e Christian Weisgerber

switch function declarations from Korn shell to Bourne/POSIX shell syntax

ok stsp



257add310e Stefan Sperling

add got.conf(5) configuration file

ok tracey


7fb414ae4d Stefan Sperling

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


f2b0a8b0a1 Stefan Sperling

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.