Как в Subversion отменить захват файла?

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

При удалении файлов они удаляются из репозитория, а также из локальной файловой системы каждого пользователя. Использование флага --keep-local почти работает. Это позволяет мне хранить копию на моем компьютере, удаляет ее из репозитория, но при этом удаляет файлы из файловой системы всех остальных.

Спасибо!


person Rydell    schedule 02.06.2009    source источник
comment
Похоже на обман stackoverflow.com/questions / 714307 /   -  person crashmstr    schedule 02.06.2009


Ответы (4)


После удаления файла вашим пользователям придется восстановить файл из репозитория с помощью svn export.

$ svn export -r x path ./

Где x - это ревизия, в которой файл существовал до его удаления, path - это полный путь к файлу, а ./ - это место, куда файл будет помещен.

См. svn help export для получения дополнительной информации.

person matpie    schedule 02.06.2009
comment
Это действительно просто и напоминает о том, что на самом деле ничего не удаляется из svn;) - person Gleb; 02.06.2009

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

Когда вы все же приступаете к установке новой системы, один метод, который обычно работает достаточно хорошо, - это заставить код искать локальный файл (скажем, config-local.php), который специально игнорируется (и поэтому никогда не помещается в репозиторий. ) и обычный файл, который читается, если более конкретный не найден. Это будет либо иметь общую конфигурацию, либо выдать ошибку, чтобы они создали локальную версию.

person Alister Bulman    schedule 02.06.2009

Вы можете только удалить файл и согласиться с тем, что он будет удален везде. Пользователи всегда могут восстановить файл после подрывной деятельности, используя команду экспорта подрывной деятельности.

person Sander Rijken    schedule 02.06.2009

Вместо того, чтобы удалять его, переместите его в какое-нибудь имя файла резервной копии (конечно, в SVN). Затем установите свойство svn: ignore для старого имени.

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

person Maciej Łebkowski    schedule 02.06.2009
comment
И затем они заканчиваются myfile.txt и myfile.txt.bak, вы никогда не знаете, когда действительно можно удалить myfile.txt. - person Sander Rijken; 02.06.2009
comment
Что произойдет, если вы сделаете это в два этапа: сначала перемещение, а затем удаление? - person Johan; 02.06.2009
comment
Перемещение изменит myfile.txt на myfile.txt.bak, а последующее удаление удалит myfile.txt.bak. Неважно, сколько шагов вы сделаете, если он закончится удалением, файл исчезнет. - person Sander Rijken; 03.06.2009