Commits
- Commit:
87a3ab84d3eb87b790e3d34aeec2c344a8d7375b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
provide functions to parse/serialize different hashes
it abstracts over the hash type and ensures that object ids are zero'ed
before their sha1 digest is written. Needed by the incoming sha256
support.
ok stsp@
- Commit:
53bf0b541977b66862040d4b633fb6b5d3a3c6c8
- From:
- Omar Polo <op@omarpolo.com>
- Date:
rename lib/sha1.c to lib/hash.c
It will soon grow functions to deal with sha256 too. stsp@ agrees.
- Commit:
5822e79e39a8777984e08b5d89a8c55d6aa0356d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
include sha2.h too where sha1.h is included
In preparation for wide sha256 support; stsp@ agrees. Change done
mechanically with
find . -iname \*.[cy] -exec sam {} +
X ,x/<sha1\.h>/i/\n#include <sha2.h>
- Commit:
a5d6823449b7d974ef01516c247fd832002e7e03
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix previous; name must be initialized
otherwise if binaryfilename fails to match the line, `name' may be left
pointing to free'd memory.
- Commit:
684a9a6c2461ac3b30d1f0445ec45c94add21931
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got patch: handle the removal of binary files
Diffs that remove binary files don't have hunks so got patch would skip
over them, treating that part of the diff as "noise".
Different programs outputs a slightly different diff for this kind of
patches, but the "Binary files ... and /dev/null differ" is usually
shown, so try to match it.
The adedd regress test covers got diff, git diff, and OpenBSD'
/usr/bin/diff. CVS diffs will currently fail because the guessed file
name will be wrong. CVS prints the file name in the Index and RCS lines
which got patch currently ignores, and shows an useless path in the
"Binary files /tmp/cvs... and /dev/null differ" line.
Discussed with and ok stsp@
- Commit:
c87842d5aed77e4f15bab3980e8cb22f18e954f8
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
show file mode for new added files in work tree diffs
Make work tree diffs of local changes on disk display the file mode of new
added files like other versions of `got diff` currently do.
ok stsp@
- Commit:
611e5fc2074d428e17f920dc595496af4dd0dc77
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
ensure got patch respects x-bit perms for new files
Reported by stsp on IRC: got patch failed to set the x-bit for a new file
despite got diff recording mode 755. Parse got and git diffs for this data
and set file modes accordingly. Tweaked with hint from op.
ok stsp@
- Commit:
08f4478902d4357c8ded641e250d50abadea27c1
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use got_privsep_flush_imsg instead of reinventing it
ok stsp@
- Commit:
acf749fc600a43d8e276321e8a63cd97484f30bb
- From:
- Omar Polo <op@omarpolo.com>
- Date:
refactor the patch parser
Introduce a patch_start routine that finds the next "diff" header (if
there is one); the idea is to persist some state (commit id and wether
it's a "git diff") while processing the content of the diff. It's
needed because in the case of 'got diff' some information like the
commit id are only present once at the beginning.
As a consequence, the patch parser becomes slightly more robust
(concatenating diffs produced by different means shouldn't confuse it
anymore) and drops the support for "old" got diffs, the ones previous
the introduction of the "commit -/+" header.
ok tracey@
- Commit:
db0dfdd7e5c2c5a38ed7c3291a0615132bcb5945
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got patch: handle git-style diffs for the 3-way merge too
tweak and ok stsp@
- Commit:
497a59156be73918988396d3f7378fb8c7b6da8d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
handle blob ids without corresponding blob ids
ok stsp@
- Commit:
8469d82143a591d423c000c47c63bababe6f5716
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
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@
- Commit:
d8b5af438b16bcea5568b1d4bfc127567e35e2f6
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use the commitid in the patch diff3 conflict header
suggested by and ok stsp@
- Commit:
55e9459f41acc72438ed2c9f75fdaeae8f5c41d8
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got patch: use diff3 to merge the changes
Parse the "blob -" metadata in diffs produced by 'got diff' and use the
original file for patching. Then, use the diff3 with the current
version of the file to merge the differences.
This solves many failures automagically or at least turns them into a
conflict.
ok/improvements stsp@
- Commit:
35095610b1bb11a6c722f6d42f6609bd308531a8
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got patch: use ints for line offsets instead of longs
ints have the advantage that their size is more likely to be the same
across the various architecture supported by OpenBSD, thus introducing
less possible differences.
INT_MAX is still (at least) a few order of magnitudes higher than the
patches we dealt with (even abnormal ones.)
suggested by stsp@
- Commit:
e45f7eba7c3fe929b6bd5852f390301aeace98aa
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
got patch: switch from fseek() to fseeko(), use unary minus while here
ok op
- Commit:
be33dff7fa389c620154dc06efbeae69bd002950
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got patch: fail when reading empty hunks
- Commit:
6b7665acf3ac9dd7d0c30372df5a4fa09b1b47fa
- From:
- Omar Polo <op@omarpolo.com>
- Date:
s/empty/done forgot in previous commit
- Commit:
d75b95736e173f91a380719d1d974cf326335c06
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got-read-patch: rename `ok' variable and simplify the parsing a bit
- Commit:
f90b7a8ce92037f39d85e51dc6439e1aee606a5a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
trailing whitespaces
- Commit:
4379a9aae9e70b9b2beaa7c7b31c4033b302069b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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@
- Commit:
b28327780dc2e32f03051c7d18d57db2e27e2de6
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got-read-patch: preserve all \ lines
as a cheap optimization got-read-patch was sending only the "\ No
newline at end of file" lines that follows an addition (a "+" line). To
be able to reverse patches in the future got_patch needs to know about
all of these lines instead. No functional changes intended.
ok stsp@
- Commit:
9d6cabd51222f7506db617ee8a7b282823dde999
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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@
- Commit:
e260f8ae2c54344af5cd0213dc0aafe6e2ff8721
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
fgetc() returns int, not char; fixes -Werror build on armv7
- Commit:
b3c57ab2fb7857f055b840d29c425370effc8f9c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got patch: handle "\ No newline at end of file"