portable: propagate AM_CFLAGS/AM_CPPFLAGS Compiling with warnings and certain compiler flags is important for security and bug-free code. Set a bunch of warnings via AM_CFLAGS in a common Makefile, and let those values propagate to all other Makefiles. While here, also fix the version string to remove quotes.

portable: compat: remove unused files Fix up a weird automerge where some files referenced are either not used any more or have already been included.

portable: fix READMEs Remove conflict markers in README, and add mailing-list link to both READMEs. Noticed by stsp

portable: initial Linux compilation This commit modifies the GoT main branch to be able to compile it under linux.

update a CAVEAT in got.1 now that 'got merge' exists

interrupt 'got histedit' upon missing/unversioned/not-deleted files

interrupt 'got rebase' upon missing/unversioned/not-deleted files

document all reasons why 'got merge' might be interrupted

make 'got merge' interrupt the merge upon undeleted and unversioned files

print additional stats about things that went wrong during a merge

fix 'got fetch' downloading too many objects in some cases Always announce all local references to the server when fetching changes. We used to do this only in mirror mode. In regular mode only refs/tags and refs/remotes/origin were announced, which could result in unnecessary downloads if relevant objects exist in refs/heads or elsewhere.

got_sha1_digest_to_str() writes to char * ok stsp

fix unsigned/signed char mismatch in parse.y ok stsp

match the unsigned char type used by the zlib interface ok stsp

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@

portable: tog: add back _XOPEN_SOURCE_EXTENDED As with OpenBSD, FreeBSD requires that _XOPEN_SOURCE_EXTENDED is defined before including <ncurses.h>, otherwise things break. On other systems (Linux), _XOPEN_SOURCE_EXTENDED is already defined, so leaving that declared unconditionally throws an error. Keep the definition, but only include it on !Linux systems. Issue reported by Christian "naddy" Weisgerber

gotadmin: fixed GOT_LIBEXECDIR path libexecdir should be used over bindir. Noticed by Christian "naddy" Weisgerber

enable gotadmin Add gotadmin to, etc., so it can be built and installed. OK thomas.adam

implement 'got merge -n' which interrupts before creating a merge commit

make it possible to merge vendor branches with 'got merge'

portability: fix typos Fix some typos. From Christian "naddy" Weisgerber

for portability, handle errno variations upon open(2) failure with O_NOFOLLOW Problem pointed out by naddy for FreeBSD -portable. Discussed with millert, thomas adam, and naddy.

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

Github: add mechanism to autoclose prs The GitHub repository is read-only and exists so that CI can be run. We do not want PRs to be issued against the repository, so should someone do that, the PR is closed with a friendly message pointing them to the mailing list instead.

match printf specifiers and (cast) types for portability ok stsp