Можем ли мы установить один файл как внешний в 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
Другие вопросы по тегам