blob: 1c40b8ff2242814d64ad0978d0a624f56f42ee07 [file] [log] [blame]
This is a feature branch for teaching 'svn patch' to parse
old mode 100644
new mode 100755
lines generated by 'git diff'.
Steps:
- [DONE] Implement parse-diff.c support
- [DONE] Implement "make it executable" support, with tests
- [DONE] Implement "make it non-executable" support, with tests
- [DONE] Handle svn:executable and 'new mode' lines both present
- [DONE] parser: Review handling of modes other than 0644/0755
Consider checking "mode & 0111"
- [DONE] check rename/copy with mode change; ensure test coverage
- [DONE] ensure binary diff & mode changes interact properly
- [DONE] Teach 'svn diff --git' to emit mode information (executability)
- In addition to the standard propchange form used for all user properties,
for compatibility with released 'svn patch' versions
- Consider the case of an unversioned file being one side of the diff.
- Use-case? Who are the current consumers of 'svn diff --git'?
- [TODO] Support symlinks as well (mode 120000)
- add the 'svn:special' property
- map the link target representation svn to/from git
- [DONE] teach parse-diff.c to parse mode 120000
- [TODO] forbid mode=120000 and svn:special on one file
(don't know how to parse file contents)
- [TODO] munge hunks: repository normal form ↔ just the symlink target
- [TODO] add symlink, remove symlink
- [TODO] parse mode from "index" lines on file hunks [required for next item]
- [TODO] change symlink target
- [TODO] change plain file to symlink
- [TODO] change symlink to plain file
- [TODO] teach 'svn diff --git' to emit mode information (symlinks)
[supporting symlinks is orthogonal to supporting mode changes]