Commits
- Commit:
41208069f572694ef8847dbe9d9a47337f7083bd
- From:
- Omar Polo <op@omarpolo.com>
- Date:
patch: handle NULs in lines
got patch assumes that lines can be encoded as strings, so embedded
NUL bytes truncates what got sees of the line.
While here, add some minor semplification to the logic by splitting
the type out of the line string and change linecmp into lines_eq
(name suggested by stsp@)
ok stsp@
- 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@