
У меня есть большая старая рабочая копия репозитория svn, которую я извлек давно. Я хотел бы экспортировать и сохранить ее, сохранив структуру каталогов.
Со временем я удалил большую часть подкаталогов и файлов на разных уровнях как ненужные. Я хотел бы экспортировать остальное с помощью svn export
.
Однако экспорт останавливается незавершенным из-за таких ошибок:
svn: Can't stat 'WSN/Somedir': No such file or directory
Я бы хотел этого избежать svn update
по следующим причинам:
- Репозиторий устарел и больше не обслуживается.
- Даже если бы он был доступен онлайн, недостающие каталоги занимают много гигабайт, и я бы предпочел не тратить время и место на их загрузку.
Одно из известных мне решений — скопировать все дерево и запустить рекурсивную команду удаления, которая удалит все каталоги «.svn».
Однако есть ли более чистый способ запросить svn
экспорт, игнорирующий отсутствующие файлы и каталоги?
решение1
Если вы запустите svn status
, вы получите список отсутствующих активов. Они обозначены символами !
; например:
$ svn status
? default.cfg
! models
В этом примере models
папка была удалена и поэтому помечена значком !
.
Чтобы исправить это, вам нужно удалить эти отсутствующие папки с помощью svn rm
; в примере это будет:
$ svn rm models
D models
D models/model1.png
D models/model2.png
Затем выполните фиксацию и экспорт должен заработать.
решение2
Или вы можете вернуть только этот подкаталог. Сделайте это, изменив каталог на папку, которую вы хотите вернуть, чтобы не вернуть что-то не то. Затем введите:
svn откат -R .
Теперь вы можете обновлять и экспортировать по своему усмотрению.