Зафиксируйте новый каталог с помощью Subversion / Tortoise SVN - PullRequest
0 голосов
/ 14 февраля 2011

Я работаю над проектом сам.У меня есть настройка Subversion и использование tortoisesvn для управления им.Проблема в том, что я начал с нуля, и у меня есть отдельный полностью работающий экземпляр моего проекта, но он не в Subversion.

Как мне получить этот экземпляр в Subversion и получить как самую последнюю ревизию.Я попытался вставить файлы из моего не-svn-каталога поверх моей текущей рабочей копии svn, но, похоже, не все обновлено.

У меня есть все резервные копии, но это код в папке не-svnчто я хочу, я не хочу ничего из текущей рабочей копии?

Имеет ли это смысл?

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Самый простой способ заменить содержимое SVN-репозитория чем-то совершенно другим - это:

  1. Выполнить полную проверку хранилища,
  2. Удалить все файлы (не с помощью команды Windows «Удалить», а с помощью пункта меню «Удалить» в подменю SVN правой кнопкой мыши)
  3. Подтвердить изменение,
  4. Копироватьповерх новых файлов и папок вы заменяете старое содержимое репозитория на
  5. '+ Добавить' все это (опять же, используя SVN-меню правой кнопки мыши)
  6. Подтвердите изменение еще раз.

Недостатком этого «простого» метода является то, что вы не сможете использовать Diff для сравнения кода между этими двумя ревизиями.

hard методчтобы проследить шаги файлов, которые были перемещены, переименованы, удалены и обновлены, так что вы все еще можете использовать diff между этими двумя ревизиями.Трюк:

  1. Чтобы сделать все, используя команды подменю SVN, щелкните правой кнопкой мыши, а не операции файловой системы Windows, чтобы изменения могли быть записаны.
  2. Чтобы выполнить только одно действиеза файл за раз (таким образом, если файл был перемещен в папку, переименован, а затем изменен, вы должны сделать коммит между каждым типом изменений)
0 голосов
/ 14 февраля 2011

Я бы использовал WinMerge и сравнил бы эти два каталога рекурсивно (игнорируя папки .svn).Предположим, что левая сторона является рабочей копией SVN, а правая сторона является правильным проектом, а не SVN:

  • все файлы, существующие на левой стороне, но не на правой стороне, должны быть удалены
  • все файлы, существующие на правой стороне, но не на левой стороне, должны быть скопированы влево и добавлены в SVN
  • все файлы, существующие на обеих сторонах, но не одинаковые, должны быть заменены на левой сторонепо файлу с правой стороны
  • все файлы, существующие с обеих сторон и идентичные, должны оставаться как есть.

После того, как вы выполнили все эти операции, вам просто нужно зафиксировать.Таким образом, вы сохраните историю, за исключением переименованных / перемещенных файлов.

...