односторонняя символическая ссылка из хранилища на каталог сборки - PullRequest
0 голосов
/ 02 ноября 2011

Я пишу код внутри репозитория SVN, но я действительно не хочу тестировать мой код из репозитория.(У меня есть каталог ../computations вне репо для этого).В идеале каталог вычислений должен представлять собой одностороннюю символическую ссылку из репо, чтобы каждое редактирование источника (внутри репо) было немедленно доступно в каталоге ../computations.

Проблема в том, что не существует такой вещи, как односторонняя символическая ссылка.Сценарий оболочки rsync настолько близок, насколько я могу добраться до одностороннего зеркала репозитория, но я пытаюсь свести к минимуму шансы того, что я забуду (или устану) «обновить» каталог ../computations.

Какие у меня есть варианты?

Подробнее: Я работаю с кодом C ++ и Python, который охватывает более одного - но менее десяти - каталогов, и редактируюв действ.

1 Ответ

0 голосов
/ 02 ноября 2011

Хорошо, вот так:

У нас есть скрипт rsync с именем snk в /usr/local/bin, который выглядит следующим образом:

#! /bin/bash
# this script will rsync -a the ../repo directory
# with the ../computations directory on various architectures.  
# leave this script here (in the repo!) and create a symlink to it from someplace in your $PATH

# get this host
HOST=${HOSTNAME}

# define various hosts in order to dictate specific rsync commands
hostA="someHost"
hostB="someOtherHost"


if [ "$HOST" = "$hostA" ] 
then
    rsync -zvai --exclude=.svn /full/path/to/repo/on/hostA/ /full/path/to/computations

elif [ "$HOST" = "$hostB" ] 
then
rsync -zvai --exclude=.svn /full/path/to/repo/on/hostB/ /full/path/to/computations
fi

Затем мы пошли в Google и обнаружили: этот вопрос о 'vim: rsync on save' и дал ему шанс.Взгляните на эту часть моего нового .vimrc файла:

:if system('pwd') =~ "/full/path/to/base/of/repo"
:  au BufWritePost * !snk
:endif   

Это приближение первого порядка к решению моей проблемы, надеюсь, оно поможет!

Спасибо Випраптор !

...