2013-09-03 4 views
0

Как удалить локальную рабочую копию, которую я проверил по ошибке? У меня есть каталог, содержащий разные извлеченные деревья (и каталог .svn) и просто хочу удалить один из них. Просто удаление файлов не работает - обновление родителя или попытка повторного использования имени дерева повторно заполняют файлы. svn delete тоже не работает, я не могу зафиксировать родителя или все еще повторно использовать имя дерева. [Да, я мог бы игнорировать «удаленное» дерево, но я хочу повторно использовать имя.]Удаление локальной копии в subversion 1.7.5

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

+0

Что делает '' svn delete'' сказать? –

+0

О, отлично работает и удаляет все файлы локально. Затем я пытаюсь повторно использовать имя проекта для новой проверки, и он возвращает их обратно. И после выполнения svn delete я не могу выполнить фиксацию, или я бы удалил файлы репозитория. – TheMathemagician

+0

Это просто проверка или привязка к верхней директории с помощью 'svn: externals'? –

ответ

2

Ваше решение лежит на sparse directories.

Допустим, у вас есть каталог с именем parent (т.е. корень вашей проверки) с каталогами имени child01, child02 и child03 - и child02 содержит каталоги и файлы, которые вам не нужны в вашей кассе. Вы бы сказать, что Subversion child02 следует рассматривать как «редкие» с:

> cd parent\child02 
> svn update --set-depth empty 

С тех пор, когда все вы выдаете svn update на папку parent, Subversion будет «игнорировать» любые обновления для папки child02.

Конечно, это конкретный заказ. Если у вас svn checkout другая копия parent, то child02 будет содержать свои файлы и папки, потому что глубина по умолчанию для svn checkout (и фактически всех команд) равна infinity.

Надеюсь, это поможет.

+0

Гениальный! Однако не совсем то, что я хочу. Я хочу удалить все следы локальной копии, как если бы она никогда не была создана. – TheMathemagician

+0

Ну, AFAIK единственным способом было бы редактировать метаданные проверки и удалять все ссылки на папку и ее подпапки и файлы. Я должен предупредить вас, что это игра с огнем, поэтому будьте очень осторожны. Кроме того, это повлияет только на текущую проверку. –

+0

Да, вы правы, это теоретически работает, но, к сожалению, тысячи файлов задействованы, и метаданные, по-видимому, распределены по огромному количеству файлов. Я не уверен, что смогу даже правильно отредактировать метаданные. – TheMathemagician