Можем ли мы установить один файл как внешний в Subversion? - PullRequest
32 голосов
/ 31 августа 2009

Можем ли мы установить один файл как внешний в Subversion?

Ответы [ 4 ]

24 голосов
/ 31 августа 2009

Да, это возможно с SVN 1.6. Это задокументировано в ночной версии svn book.

Но даже несмотря на то, что внешние файлы работают, вы должны делать это только с текстовыми файлами (на данный момент), потому что двоичные файлы не будут работать правильно как внешние файлы.

4 голосов
/ 02 августа 2017

Как уже упоминалось в первом ответе, внешние ссылки SVN описаны в главе 3 книги SVN , и там приводится довольно много примеров синтаксиса.

Кроме того, это примечание дано:

"Поскольку свойство svn: externals имеет многострочное значение, мы настоятельно рекомендуем использовать svn propedit вместо svn propset. "

В моем опыте тестирования Tortoise SVN v1.9.6 и svn.exe v1.9.5 результаты документированы.

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

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

Документы для этого с клиентом Tortoise SVN на tortoisesvn.net .

2 голосов
/ 22 июня 2015

Я не смог найти хороший пример того, как создать внешний файл 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.

1 голос
/ 09 июня 2016

Для 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
...