14

Допустим, я создаю файл символьной ссылки внутри управляемого пути SVN, фиксирую путь к SVN и позже извлекаю путь.

  1. Выживет ли файл символьных ссылок?

  2. Если файл символьной ссылки состоит из относительного пути, будет ли он работать "везде", проверка сделана?

  3. Есть ли ошибки?

5 ответов5

22

Со страницы Subversion Features:

Символьные ссылки могут быть версионными.

Пользователи Unix могут размещать символические ссылки под контролем версий. Ссылки воссоздаются в рабочих копиях Unix, но не в рабочих копиях win32.

  1. да

  2. Пока разрешения не изменены, это должно быть.

  3. Не будет работать над проверками Windows.

16

В общем да.

Однако некоторые клиенты не работают с символическими ссылками должным образом. Subclipse для Eclipse IDE создает каталоги вместо символических ссылок.

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

8

Симлинки не выживут на машине с Windows, это может быть проблемой.
На компьютерах с Windows символические ссылки имеют вид файлов-заполнителей *), например:

style.css:

link ../www_public/styles.css

*): эти файлы имеют свойство " svn:special " со значением " * ".

Иногда мне нужно экспортировать материал на компьютер с Windows, прежде чем я смогу переместить / загрузить проект на его целевой сервер.

Я использую небольшой скрипт оболочки, который прекрасно справляется с воссозданием реальных символических ссылок из файлов-заполнителей:

#!/bin/sh

grep -lr '^link ' . | while read placeholderfile
do
  linecount=`wc -l $placeholderfile | cut -c1`
  if [ $linecount -eq 0 ] ; then
    linkfile=`cut -c6- "$placeholderfile"`
    ln -sf "$linkfile" "$placeholderfile"

    echo -e "[\E[32;40mOK\E[37;40m] Replaced $placeholderfile with symlink"
  else
    echo -e "[\E[31;40mWARNING\E[37;40m] $placeholderfile contains newline(s)"
  fi
  tput sgr0
done

Этот скрипт работает в предположении, что все файлы, которые начинаются со строки « link » и не содержат символов новой строки, являются символическими ссылками .

0

NTFS поддерживает символические ссылки с самого начала - это наследие подсистемы POSIX NT. Таким образом, вы можете создавать символические ссылки. Но Windows как ОС может распознавать символические ссылки как таковые только с Win 7 и выше. И они ограничены - по умолчанию политики, обычные пользователи не могут создавать символические ссылки с MKLINK.

0

Начиная с Windows 7, ОС понимает символические ссылки; смотрите здесь для некоторой документации. Обычные клиенты SVN под Windows пока не поддерживают это, а svn под cygwin поддерживает!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .