Почему svn diff иногда копирует рабочие файлы во временный файл? - PullRequest
8 голосов
/ 28 декабря 2008

Я использую внешний инструмент сравнения с Subversion (правила Beyond Compare!), И одной из замечательных возможностей является возможность использовать программу сравнения, чтобы внести незначительные изменения в файл, когда я рассматриваю изменения, сделал.

Но svn diff работает по-разному на разных моих проектах. В целом, левый файл является временным файлом, содержащим последнюю ревизию, хранящуюся в Subversion (глава). Но в некоторых случаях правый файл является фактическим рабочим файлом, в то время как в других это временная копия рабочего файла. В первом случае я могу внести изменения в программу сравнения, и они влияют на рабочую копию. Во втором случае я редактирую временный файл, поэтому изменения теряются.

Почему Subversion иногда отличается от рабочего файла, но иногда от временной копии рабочего файла? Как я могу сделать так, чтобы он всегда использовал рабочий файл?

Ответы [ 2 ]

11 голосов
/ 28 декабря 2008

Есть ли у вас какие-либо ключевые слова svn: для этих файлов? Если да, то Subversion сначала создаст временный файл, в котором все расширенные ключевые слова будут «нерасширенными». Это сделано для того, чтобы все строки ключевых слов не отображались как разные, даже если они не были изменены.

Например, если файл diff в вашей рабочей копии отличается от BASE, в файле BASE нет расширенных ключевых слов (и он также хранится с переносами строк LF), а в файле рабочей копии все расширенные ключевые слова (и сохраняются с помощью CRLF lineendings). Если вы не изменили этот файл локально, 'svn diff' покажет все строки как разные (если окончания строк не совпадают) или по крайней мере все строки с ключевыми словами будут показаны как разные - это не то, что вы бы сделали ожидать.

0 голосов
/ 28 декабря 2008

Возможно, есть некоторые проблемы с доступом. Попробуйте установить файл только для чтения, если svn открывает временный файл сейчас, это один из возможных ответов на ваш вопрос. В этом случае, возможно, какой-то редактор / IDE, который вы используете, защищает файл от записи.

...