Svn diff, когда файлы отмечены "историей, запланированной с фиксацией",

У меня есть изменения в ветке, которые я объединил с trunk в моем рабочем каталоге. Svn stat показывает правильный список измененных файлов. Однако вывод "svn stat" включает в себя "+" в истории, запланированной для фиксации, для каждого файла, добавленного к ветке.

A + src\main\java\com.... java

Когда я запускаю "svn diff", добавленные файлы с "+" не включаются в выход патча.

Это кажется сломанным. Если файл помечен как добавленный, то все содержимое должно быть в формате diff. Я пробовал передать "-notice-ancestry". Не было никаких изменений в выходе diff. Самое близкое, что я могу найти к той же проблеме, - эти комментарии относительно скопированных/перемещенных файлов

Кто-нибудь знает, как заставить SVN включать эти файлы в выходной файл diff?

Я просто попробовал внешнюю программу diff, предложенную в этом questions ответе, но это не сработало для меня.

Ответ 1

Когда версия 1.7 будет выпущена, для этой цели svn diff будет иметь переключатель --show-copies-as-adds. Это хороший признак того, что версии версии 1.6 не обладают этой способностью.

Ответ 2

Символ + в выводе svn status указывает, что файл имеет "История запланирована с фиксацией". Это означает, что файл фактически не является новым файлом, а фактически прямым потомком какого-либо другого файла в репозитории Subversion.

Это означает, что в svn diff не должно быть вывода, так как файл фактически не изменился. Если вы хотите внести некоторые локальные изменения в файл, они появятся на выходе svn diff.

Ответ 3

если вы "svn mv fileA fileB". рядом с файлом будет знак +. Я думаю, знак + означает, что фактическое содержимое файла не было изменено, поэтому оно не отображается в svn diff. В этом случае это просто имя файла изменилось.