Как git-svn изящно позаботится о пустых каталогах? - PullRequest
31 голосов
/ 08 ноября 2011

Я очень рад, что использую git-svn, хотя заметил, что у git другой подход, когда речь идет о пустых каталогах, как SVN. Мне нужен способ обойти следующую конкретную ситуацию:

У меня в репозитории SVN моего проекта есть несколько пустых каталогов, которые там находятся и не должны быть затронуты. Из-за некоторого рефакторинга мне пришлось удалить другой каталог, в котором раньше были файлы. git svn dcommit удаляет файлы, но покидает каталог. Меня поражает, что незнание git пустых каталогов приводит к непоследовательности в моем репозитории SVN.

Я бы хотел удалить этот конкретный каталог из моего хранилища SVN. Может ли git-svn сделать это? А если нет, то как мне это сделать? (И - в конце концов - как я могу это сделать, передавая вместе с ними другие файлы в том же наборе изменений?)

Ответы [ 2 ]

35 голосов
/ 09 ноября 2011

Использовать аргумент rmdir или параметр конфигурации:

- RmDir

Используется только с командами dcommit, set-tree и commit-diff.

Удалить каталоги из дерева SVN, если не осталось файлов позади. SVN может создавать версии пустых каталогов, и они не удаляются по умолчанию, если в них не осталось файлов. git не может пустую версию каталоги. Включение этого флага заставит коммит к SVN действовать как мерзавец.

ключ конфигурации: svn.rmdir

13 голосов
/ 08 ноября 2011

Вам придется удалить его на стороне SVN:

svn delete -m "deleting empty dir" http://path/to/deleted/dir
...