"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "technical/directory-rename-detection.txt" between
git-htmldocs-2.33.0.tar.xz and git-htmldocs-2.33.1.tar.xz

About: Git is a distributed version control system designed to handle everything from small to very large projects (like the Linux kernel) with speed and efficiency. Documentation (HTML).

directory-rename-detection.txt  (git-htmldocs-2.33.0.tar.xz):directory-rename-detection.txt  (git-htmldocs-2.33.1.tar.xz)
Directory rename detection Directory rename detection
========================== ==========================
Rename detection logic in diffcore-rename that checks for renames of Rename detection logic in diffcore-rename that checks for renames of
individual files is aggregated and analyzed in merge-recursive for cases individual files is also aggregated there and then analyzed in either
where combinations of renames indicate that a full directory has been merge-ort or merge-recursive for cases where combinations of renames
renamed. indicate that a full directory has been renamed.
Scope of abilities Scope of abilities
------------------ ------------------
It is perhaps easiest to start with an example: It is perhaps easiest to start with an example:
* When all of x/a, x/b and x/c have moved to z/a, z/b and z/c, it is * When all of x/a, x/b and x/c have moved to z/a, z/b and z/c, it is
likely that x/d added in the meantime would also want to move to z/d by likely that x/d added in the meantime would also want to move to z/d by
taking the hint that the entire directory 'x' moved to 'z'. taking the hint that the entire directory 'x' moved to 'z'.
skipping to change at line 91 skipping to change at line 91
Directory rename detection is supported by 'merge' and 'cherry-pick'. Directory rename detection is supported by 'merge' and 'cherry-pick'.
Other git commands which users might be surprised to see limited or no Other git commands which users might be surprised to see limited or no
directory rename detection support in: directory rename detection support in:
* diff * diff
Folks have requested in the past that `git diff` detect directory Folks have requested in the past that `git diff` detect directory
renames and somehow simplify its output. It is not clear whether this renames and somehow simplify its output. It is not clear whether this
would be desirable or how the output should be simplified, so this was would be desirable or how the output should be simplified, so this was
simply not implemented. Further, to implement this, directory rename simply not implemented. Also, while diffcore-rename has most of the
detection logic would need to move from merge-recursive to logic for detecting directory renames, some of the logic is still found
diffcore-rename. within merge-ort and merge-recursive. Fully supporting directory
rename detection in diffs would require copying or moving the remaining
bits of logic to the diff machinery.
* am * am
git-am tries to avoid a full three way merge, instead calling git-am tries to avoid a full three way merge, instead calling
git-apply. That prevents us from detecting renames at all, which may git-apply. That prevents us from detecting renames at all, which may
defeat the directory rename detection. There is a fallback, though; if defeat the directory rename detection. There is a fallback, though; if
the initial git-apply fails and the user has specified the -3 option, the initial git-apply fails and the user has specified the -3 option,
git-am will fall back to a three way merge. However, git-am lacks the git-am will fall back to a three way merge. However, git-am lacks the
necessary information to do a "real" three way merge. Instead, it has necessary information to do a "real" three way merge. Instead, it has
to use build_fake_ancestor() to get a merge base that is missing files to use build_fake_ancestor() to get a merge base that is missing files
 End of changes. 2 change blocks. 
6 lines changed or deleted 8 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)