Как удалить файлы на основе Subversion? - PullRequest
1 голос
/ 15 августа 2011

У меня есть папка с именем "y", которая не хранится в системе управления версиями.У меня есть папка "х", которая находится под контролем версий.Я хочу скопировать y в x, потому что тогда я могу использовать команду Tortoisesvn Check for Modifications для папки x

. Тогда я могу предположить, что каждый файл / папка, которая читает Non-versioned илиIgnored можно безопасно удалить.Поскольку мой туалет работал без них целый год.

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

Обновление.

Я довольно далеко, думаю, мне просто нужен способ автоматизировать это.

Я скопировал y в x.Я проверил проверку на наличие модификаций.Я могу щелкнуть правой кнопкой мыши диалоговое окно и скопировать пути в буфер обмена.Я выбираю только неверсированные или игнорируемые файлы.

Я вставляю пути в пакетный файл.Я использую магию поиска и замены для ее создания.

XCOPY www.root\* www.root.backup /I /Q /R /S /E
CD www.root
DEL "Appraisals\*.*" /q /s
DEL "jobs\Backup\*.*" /q /s
DEL "New\Portability\BACKUP\*.*" /q /s
DEL "Footer\Codes\*.*" /q /s
DEL "QL\Commercial\*.*" /q /s
DEL "images\Discard\*.*" /q /s
DEL "Dup SH Pages\*.*" /q /s
DEL "ExtensionRequest\*.*" /q /s
DEL "ExtFile\*.*" /q /s
DEL "Ad\Include\*.*" /q /s
DEL "Bio\Include\*.*" /q /s
DEL "Contact\Include\*.*" /q /s

Обновление # 2

Я лучше работаю с аналогиями и примерами, так что вот сценарий, и я хочу, чтобы результат был.

Пожалуйста, представьте, что у меня в репо очень простой сундук.В нем только один файл code.txt Я делаю свои изменения в этом файле, фиксирую их в репозитории.После внесения изменений в репозиторий я экспортирую только этот файл из репозитория в Production.

А теперь представьте, что приходят другие разработчики и не разговаривают со мной.Они напрямую копируют на рабочий сервер все виды файлов.

copy of code.txt
bob's copy of code.txt_backup
copy of copy of copy of bob's copy of code.txt_backup.backup

Теперь представьте, я это понимаю и решаюзащитить свой код в subverion.Я добавляю его в репо и фиксирую.Теперь со временем я понимаю, что copy of copy of copy of bob's copy of code.txt_backup.backup на самом деле является частью производства, а два других файла являются мусором.

Я удаляю файлы copy of code.txt, bob's copy of code.txt_backup из моего WC и фиксирую.Я также внес небольшое изменение в code.txt.Я фиксирую.

Теперь, когда я сравниваю с предыдущей ревизией и выполняю экспорт, Черепаха будет экспортировать измененный файл (ы).

Итак, теперь у меня есть два файла, потерянные на производстве.Я хочу, чтобы скрипт удалил их из производства, основываясь на том факте, что их нет в HEAD Subversion.

Теперь представьте, что у вас 5300 файлов и папок..... Уф.

1 Ответ

1 голос
/ 15 августа 2011

Если я правильно понимаю вашу проблему, вам нужно только скопировать содержимое y в извлеченный x.

Затем откройте x с помощью проводника Windows.Поскольку на вашем ПК установлена ​​черепаха svn, файлы, не относящиеся к версии, будут помечены синим значком, файлы, измененные красным значком, и файлы, не измененные зеленым значком.

Это то, что вы ищетедля?

РЕДАКТИРОВАТЬ

У меня просто была другая идея:

  1. Создать копию Y.
  2. Перебратьвсе файлы f в X.
  3. Удалить все f в Y.

В конце Y будет содержать файлы не в X, что вы хотите, нет?Затем вы можете удалить их из X после добавления Y в X.

...