Можем ли мы установить один файл как внешний в Subversion?
Можем ли мы установить один файл как внешний в Subversion?
4 ответа
Да, это возможно с SVN 1.6. Это задокументировано в ночной сборке svn book.
Но даже несмотря на то, что внешние файлы работают, вы должны делать это только с текстовыми файлами (пока), потому что двоичные файлы не будут работать как внешние файлы.
Как уже упоминалось в первом ответе, внешние ссылки SVN описаны в главе 3 книги SVN, и там приведено довольно много примеров синтаксиса.
Кроме того, это примечание дается:
"Поскольку свойство svn:externals имеет многострочное значение, мы настоятельно рекомендуем использовать svn propedit вместо svn propset".
В моем опыте тестирования Tortoise SVN v1.9.6 и svn.exe v1.9.5 результаты документированы.
- Внесение во внешнюю папку со всеми ее файлами работает.
- Объединение одного файла из того же репо работает.
- Скопировать один файл из другого репозитория не удается, и это ограничение задокументировано в книге SVN.
Это приводит к неуклюжему обходному пути. Если вы управляете обоими репо, вы можете клонировать отдельный файл в его собственную папку в исходном репо (с помощью внешнего файла одного файла в репо), а затем переместить его через границы репо в целевое репо, введя всю его папку, который содержит только один файл.
Документы для этого с клиентом Tortoise SVN находятся на tortoisesvn.net.
Я не мог найти хороший пример о том, как создать внешний SVN-файл. Итак, я привожу здесь пример, чтобы он мог быть полезен для других.
Формат
svn propset svn:externals "<local file> <remote svn file>" <local dir>
Например, следующая команда
svn propset svn:externals "my.cfg https://myserver/my/svn/location/my_sample_file.cfg.template" my_folder
создаст файл https://myserver/my/svn/location/my_sample_file.cfg.template разделе my_folder
как my.cfg
, Здесь, очевидно, я предполагаю, что у вас уже есть папка my_folder
под вашим текущим каталогом, который находится под SVN.
Для SVN 1.9.4 синтаксис похож на синтаксис папки:
svn propset svn:externals <remote file> <local file>
Например, это создаст файл local.txt
в текущем каталоге со ссылкой на file.txt
:
svn propset svn:externals ^/trunk/path/to/file.txt local.txt