Subversion бесится от меня! - PullRequest
10 голосов
/ 14 мая 2010

У меня есть две копии сайта, одна из которых является рабочей, а другая - разработкой. Недавно я добавил все в производственной среде в хранилище Subversion, размещенное на нашем сервере резервного копирования Linux. Я создал тег текущей версии и все готово.

Затем я скопировал копию разработки поверх рабочей копии (на моей локальной машине, где у меня все проверено). Изменено только 10-20 файлов, однако, когда я использую черепаху SVN для выполнения коммита, он говорит, что каждый файл изменился. Сгенерированный файл diff показывает, что subversion удаляет все и заменяет его новой версией (которая точно такая же).

Что происходит? Как мне это исправить?

Пример различий:

Index: C:/Users/jhollon/Documents/Visual Studio 2008/Projects/saloon/trunk/components/index.html
===================================================================
--- C:/Users/jhollon/Documents/Visual Studio 2008/Projects/saloon/trunk/components/index.html   (revision 5)
+++ C:/Users/jhollon/Documents/Visual Studio 2008/Projects/saloon/trunk/components/index.html   (working copy)
@@ -1,4 +1,4 @@
-<html>
-<body bgcolor="#FFFFFF">
-</body>
+<html>
+<body bgcolor="#FFFFFF">
+</body>
 </html>
\ No newline at end of file

Ответы [ 4 ]

8 голосов
/ 14 мая 2010

Это, вероятно, несоответствие в конце строки. Установите свойство svn:eol-style=native для всех ваших файлов.

http://svnbook.red -bean.com / о / 1,5 / svn.advanced.props.file-portability.html # svn.advanced.props.special.eol стиль

По умолчанию Subversion может устанавливать это свойство для всех новых файлов:

http://svnbook.red -bean.com / о / 1,5 / svn.advanced.props.html # svn.advanced.props.auto

Вот что находится в моей ~ / .subversion / config:

enable-auto-props = yes

### Section for configuring automatic properties.
[auto-props]
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
*.c = svn:eol-style=native
*.cpp = svn:eol-style=native
*.h = svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
*.sh = svn:eol-style=native;svn:executable=*
*.txt = svn:eol-style=native
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
*.jpeg = svn:mime-type=image/jpeg
Makefile = svn:eol-style=native
*.tmpl = svn:eol-style=native
*.gif = svn:mime-type=image/gif
*.t = svn:eol-style=native;svn:executable=*
*.pm = svn:eol-style=native
*.pl = svn:eol-style=native;svn:executable=*
*.cgi = svn:eol-style=native;svn:executable=*
*.js = svn:eol-style=native;svn:mime-type=application/x-javascript
*.dtd = svn:eol-style=native;svn:mime-type=application/xml-dtd
*.txt = svn:eol-style=native;svn:mime-type=text/plain
*.html = svn:eol-style=native;svn:mime-type=text/html
*.yicf = svn:eol-style=native
*.xml = svn:eol-style=native;svn:mime-type=text/xml
*.sgml = svn:eol-style=native;svn:mime-type=text/sgml
*.xul = svn:mime-type=application/vnd.mozilla.xul+xml
*.tt = svn:eol-style=native
0 голосов
/ 17 мая 2010

Похоже, на этот вопрос уже получен хороший ответ (стиль EOL). Я просто хотел добавить еще одну вещь, которая может вызвать такую ​​проблему: Tabs vs Spaces. Если ваш текстовый редактор или IDE использует пробелы для отступов, а кто-то в вашей команде использует вкладки, SVN увидит множество изменений файлов, но вы не увидите их.

0 голосов
/ 14 мая 2010

Я вижу, вы используете Visual Studio, так что, возможно, это связано с кодировкой файлов? У меня были странные проблемы с исходными файлами кодирования VS по-разному на двух разных машинах, хотя машины имеют одинаковые настройки языка и культуры. В VS источники выглядят точно так же, но SVN видит необработанные файлы ...

Откройте две ревизии в редакторе, который ничего не знает о Unicode или кодировке (я думаю, что использовал Notepad?), И посмотрите, отличаются ли они. Первая строка файла содержит код, который указывает, какой тип кодировки используется. Я понятия не имею, как интерпретировать этот код, но, по крайней мере, вы сможете определить, отличаются ли они.

В меню Сервис -> Параметры -> Среда -> Документы, управляющие кодировкой, есть параметры.

0 голосов
/ 14 мая 2010
Краткосрочное решение

(для проверки различий между двумя версиями): посмотрите две версии для сравнения в двух отдельных каталогах и сравните каталоги с помощью внешнего инструмента сравнения (объединение в linux, winmerge в окнах) Эти инструменты могут быть настроены на игнорирование различий в конце строки.

Редактировать: в остальном, использовать решение Дэвида М (не знал, что SVN может справиться с этим ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...