Измененные файлы не изменены? - PullRequest
2 голосов
/ 14 июня 2011

Я извлек каталог из моего локального сервера SVN :.После изменения какого-либо файла я хочу зафиксировать изменения.Здесь я получаю проблему:

  • В TortoiseSVN файлы помечены как измененные (красный значок).
  • В коммитации TortoiseSVN сказано: «Файл не был изменен или добавлен ...»*
  • Обновление TotoiseSVN ничего не меняет.
  • svn stat не отображает файлы как измененные.
  • svn cat показывает явно различающееся содержимое, чем файл в рабочей копии
  • svn diff не показывает никакой разницы
  • svn update сообщает мне At revision 156.
  • Браузер репозитория TortoiseSVN показывает, что файл в репозитории имеет версию 153.

svn stat hello.js показывает это:

Path: hello.js
Name: hello.js
URL: svn:///Projects/Sample/hello.js
Repository Root: svn:///Projects
Repository UUID: 2e99062c-3216-5d44-9338-d29899e4dc4b
Revision: 156
Node Kind: file
Schedule: normal
Last Changed Rev: 153
Last Changed Date: 2011-06-13 10:45:42 +0200 (Mon, 13 Jun 2011)
Text Last Updated: 2011-06-13 09:54:07 +0200 (Mon, 13 Jun 2011)
Checksum: 4fed4d6472b30096cd00f8e1229ff833

Дата последнего обновления совпадает с датой файла в рабочей копии.

Как убедить SVN зафиксировать изменения?

Ответы [ 4 ]

3 голосов
/ 13 августа 2011

Я переустановил SVN, и проблема исчезла.К сожалению, у меня не было времени продолжить расследование.

2 голосов
/ 14 июня 2011

Здесь происходит 2 вещи. Во-первых, иконки рисуются с помощью TSVNCache.exe, который находится в фоновом режиме, наблюдая за изменениями файловой системы и обновляя иконки соответствующим образом. Тем не менее, он не так хорош, как раньше, и поэтому не всегда отображает правильный значок. Добавьте к этому, что Windows плохо справляется с этим, особенно в древовидной части проводника, поэтому довольно часто бывает, что наложения значков неверны и остаются неправильными. Я считаю, что самый простой способ исправить это - остановить TSVNCache (с помощью диспетчера задач). Остановить безопасно, и он автоматически перезапустится. Надеемся, что Microsoft исправит проводник, чтобы эта функция работала более надежно.

Вторая часть заключается в том, что, несмотря на красный значок, файл действительно не изменился - вы можете видеть это, потому что svn diff не сообщает о различиях! (Черепаха может сообщить вам точно такую ​​же информацию, используя команду «Проверить наличие изменений»).

Мне было бы интересно узнать, почему svn cat показывает «явно другой контент», а svn diff - нет.

1 голос
/ 14 июня 2011

Что касается номера ревизии, если я правильно помню, он показывает последнюю ревизию, в которой этот конкретный файл был изменен. Таким образом, тот факт, что файл SVN находится в редакции 153, а ваш локальный код - в редакции 156, просто означает, что файл не был изменен в последних 3 редакциях.

Если вы отметите его, а затем посмотрите историю файлов, вы увидите, что номера ревизий подскочат с 153 до 156.

diff обычно довольно требователен / тщателен по умолчанию, помечая даже измененные единичные пробелы как измененные - если он ничего не берет, я бы сказал, доверяйте ему. Но убедитесь, что вы на самом деле различаетесь (мне нравится это слово) между правильными версиями (скорее всего, HEAD / рабочая копия).

Мне было бы интересно увидеть корень этой проблемы, если вы поймете это.

0 голосов
/ 05 ноября 2013

Открыть свой проект-> Правый клик Нажмите «Отключить», затем выполните обычную работу, например, совместный проект с использованием SVN и передайте его.

...