- 24 May, 2013 10 commits
-
-
qsort_r is broken on HURD, avoid
Russell Belfer committed -
Cherry picking REUC fixes
Vicent Martí committed -
In theory, if there was a problem reading the REUC data, the read_reuc() routine could have left uninitialized and invalid data in the git_index vector. This moves the line that inserts a new entry into the vector down to the bottom of the routine so we know all the content is already valid. Also, per @linquize, this uses calloc to ensure no uninitialized data.
Russell Belfer committed -
Edward Thomson committed
-
introduce git_conflict_iterator
Vicent Martí committed -
merge setup
Vicent Martí committed -
Shallow-clone detection
Vicent Martí committed -
Even more rename detection fixes
Vicent Martí committed -
Extend checking for config with no files
Vicent Martí committed -
Ben Straub committed
-
- 23 May, 2013 10 commits
-
-
Russell Belfer committed
-
Plus a bit of extra paranoia to ensure config object has valid contents.
Russell Belfer committed -
This extends the rename tests to make sure that every rename scenario in the inner loop of git_diff_find_similar is actually exercised. Also, fixes an incorrect assert that was in one of the clauses that was not previously being exercised.
Russell Belfer committed -
Ben Straub committed
-
This moves the GIT_CVAR_ABBREV lookup out of the loop. Also, this fixes git_diff_print_raw to actually use that constant instead of hardcoding 7 characters.
Russell Belfer committed -
This adds a couple more tests of different rename scenarios. Also, this fixes a problem with the case where you have two "split" deltas and the left half of one matches the right half of the other. That case was already being handled, but in the wrong order in a way that could result in bad output. Also, if the swap also happened to put the other two halves into the correct place (i.e. two files exchanged places with each other), then the second delta was left with the SPLIT flag set when it really should be cleared.
Russell Belfer committed -
I was accidentally using a value that I had just freed. This moves the clearing of the delta internal flags into a better place.
Russell Belfer committed -
Update windows resources to match the dll name
Ben Straub committed -
Bugfix: Return NULL in push_leaf, when trie is full
Ben Straub committed -
Axel Wagner committed
-
- 22 May, 2013 2 commits
-
-
This flips rename detection around so instead of creating a forward mapping from deltas to possible rename targets, instead it creates a reverse mapping, looking at possible targets and trying to find a source that they could have been renamed or copied from. This is important because each output can only have a single source, but a given source could map to multiple outputs (in the form of COPIED records). Additionally, this makes a couple of tweaks to the public rename detection APIs, mostly renaming a couple of options that control the behavior to make more sense and to be more like core Git. I walked through the tests looking at the exact results and updated the expectations based on what I saw. The new code is different from the old because it cannot give some nonsense results (like A was renamed to both B and C) which were part of the outputs previously.
Russell Belfer committed -
os->full was set 1, but the overflowed idx_leaf was still used to index into os->nodes a little later. Returning NULL fixes that.
Axel Wagner committed
-
- 21 May, 2013 7 commits
-
-
Make InternalName and OriginalFilename resources reflect the name of the compiled binary.
nulltoken committed -
nulltoken committed
-
tag: Introduce git_tag_annotation_create()
Ben Straub committed -
nulltoken committed
-
define "long name" in git_reference_name_to_id
Ben Straub committed -
Carlos Martín Nieto committed
-
Li Xuanji committed
-
- 20 May, 2013 3 commits
-
-
Initialize loose_deleted before it is used for a check later on.
Edward Thomson committed -
This adds a bunch more rename detection tests including checks vs the working directory, the new exact match options, some more whitespace variants, etc. This also adds a git_futils_writebuffer helper function and uses it in checkout. This is mainly added because I wanted an easy way to write out a git_buf to disk inside my test code.
Russell Belfer committed -
- Add new GIT_DIFF_FIND_EXACT_MATCH_ONLY flag to do similarity matching without using the similarity metric (i.e. only compare the SHA). - Clean up the similarity measurement code to more rigorously distinguish between files that are not similar and files that are not comparable (previously, a 0 could either mean that the files could not be compared or that they were totally different) - When splitting a MODIFIED file into a DELETE/ADD pair, actually make a DELETED/UNTRACKED pair if the right side of the diff is from the working directory. This prevents an odd mix of ADDED and UNTRACKED files on workdir diffs.
Russell Belfer committed
-
- 19 May, 2013 1 commit
-
-
Eitan Adler committed
-
- 18 May, 2013 2 commits
-
-
Add --raw output format and (some) options to invoke rename/copy detection on the diff.
Russell Belfer committed -
There are a number of bugs in the rename code that only were obvious when I started testing it against large old repos with more complex patterns. (The code to do that testing is not ready to merge with libgit2, but I do plan to add more thorough tests.) This contains a significant number of changes and also tweaks the public API slightly to make emulating core git easier. Most notably, this separates the GIT_DIFF_FIND_AND_BREAK_REWRITES flag into FIND_REWRITES (which adds a self-similarity score to every modified file) and BREAK_REWRITES (which splits the modified deltas into add/remove pairs in the diff list). When you do a raw output of core git, rewrites show up as M090 or such, not at A and D output, so I wanted to be able to emulate that. Publicly, this also changes the flags to be uint16_t since we don't need values out of that range. Internally, this contains significant changes from a number of small bug fixes (like using the wrong side of the diff to decide if the object could be found in the ODB vs the workdir) to larger issues about which files can and should be compared and how the various edge cases of similarity scores should be treated. Honestly, I don't think this is the last update that will have to be made to this code, but I think this moves us closer to correct behavior and I tried to document the code so it would be easier to follow..
Russell Belfer committed
-
- 17 May, 2013 5 commits
-
-
The delta cmp function needs to choose the correct path for ordering when a delta is ADDED, RENAMED, or COPIED.
Russell Belfer committed -
Makes it easier to emulate the --raw option
Russell Belfer committed -
I frequently want to the the first N digits of an OID formatted as a string and I'd like it to be efficient. This function makes that easy and I could rewrite the OID formatters in terms of it.
Russell Belfer committed -
Edward Thomson committed
-
Edward Thomson committed
-