2013-11-28 2 views
1

git mv foldera folderb, приводит к тому, что все файлы в foldera перемещаются в folderb. Использование DiffFormatter Я могу видеть DiffEntry объектов для каждого файла.Как распознать переименование папки в JGit

Однако, это не говорит всей истории. Конкретно, из объектов DiffEntry я не могу определить, было ли переименовано foldera в folderb, или folderb уже существовало до фиксации, и 2 файла были перемещены индивидуально в фиксации, оставив foldera с 2-мя файлами. Есть ли другой класс для проверки фиксации, чтобы получить эту информацию?

ответ

3

Git отслеживает изменения в файлах, а не в папках. Если вы только что создали folderb, git не узнал бы его (даже если вы git add folderb). Если вы переместили все файлы с foldera на folderb, git не знал бы, что foldera все еще существует.

Другими словами, если нет плагина, который отслеживает папки в репозиториях git, вы не можете различать эти два случая - поскольку эта информация не существует в репозитории. Git не знает, что есть foldera и folderb - все, что он знает, это то, что на их путях есть файлы с foldera/ и folderb/.

Смежные вопросы