SVN: получить diff для файлов, которые не существуют в этих ревизиях (добавлены или удалены) - PullRequest
0 голосов
/ 29 февраля 2012

У меня небольшая проблема с svn diff. Я действительно должен использовать эту строку:

svn diff -r X:Y path/to/file.ext

Это прекрасно работает для случаев file.ext существует в обеих ревизиях. Проблема в том, когда это не так - я получаю сообщение:

Невозможно найти местоположение хранилища для файла file.ext в X-версии

Вместо этого я хотел бы получить строку сравнения, как будто все строки были добавлены / удалены (что-то вроде того, что я получу с помощью Mercurial diff) ...

Есть ли способ выполнить это в SVN? Спасибо всем заранее!

Ответы [ 4 ]

0 голосов
/ 06 июня 2015

Svn diff покажет diff внутри файла.однако, если вы хотите увидеть, какие изменения были внесены в структуру каталогов, svn st - это то, что вы должны использовать.

EX:

D:\FZPCppwc>svn st
M       aam\dm\adaptor\Aal2AlarmReporter.C
!       aam\stacks\sscop\Sscop2.H
!       aam\stacks\sscop\Stc.cpp
A       aam\stacks\sscop\Test.cpp

Итак, я изменил один файл и удалил два файлаи добавил один файл.

0 голосов
/ 01 марта 2012

Возможно, проблема в том, что этот файл не существует в ревизии X вашего хранилища.

Теперь вы можете увидеть файл path/to/file.ext в редакции X , и на ваш простой смертный взгляд он выглядит как тот же файл. Однако Subversion понимает, что, хотя файл может иметь то же имя, он может быть не точным файлом. Например, если кто-то удалил файл в более поздней версии, а затем добавил этот файл обратно, файл будет иметь то же имя и каталог, но не будет более ранней версией файла.

Вам необходимо указать ревизию peg в URL. Допустим, вы пытаетесь сравнить ревизию 1001 и 2004:

 $ svn diff http://server/svn/path/to/file.ext@1001 \
     http://server/svn/path/to/file.ext@2004

Это позволит выполнить сравнение любого файла, который был на http://server/svn/path/to/file.ext при ревизии 1001 и 2004 - даже если они, согласно Subversion, не являются одним и тем же файлом.

0 голосов
/ 10 сентября 2012

Пока я узнал, что это невозможно, я проанализировал ошибку и сделал различие программно.

0 голосов
/ 29 февраля 2012

Я почти уверен, что вы не можете различать изменения структуры каталогов на уровне файлов.

...