Копировать части репозитория SVN в другой - PullRequest
0 голосов
/ 29 ноября 2010

Существует ли какой-либо инструмент (или svnsync может это сделать, я не думаю, что он может), который может копировать определенный файл или каталог из одного репозитория в другое (оба удаленных)?

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

Спасибо.

Ответы [ 3 ]

1 голос
/ 29 ноября 2010

Если вы не возражаете запачкать руки, вы можете написать небольшой скрипт, который экспортирует файл (ы) частного проекта и фиксирует svn-clean-files в ваш публичный проект.

Таким образом, даже svn diffs для публичного проекта, возможно, хотя и не совпадают с оригинальной историей svn.Но это хорошо, поскольку это не предназначено.

Что-то вроде этого как работа cron?

#!/bin/bash

EXPDIR=$(mktemp -d /tmp/projectXXXXXX)

svn export --force svn+ssh://USERNAME@yourserver/repository/project/sub/ $EXPDIR/
svn add $EXPDIR/ svn+ssh://USERNAME@publicserver/repository/subpart/
cd $EXPDIR/
svn ci -m "update `date`" $EXPDIR/

#cleanup
rm -rf "/tmp/$EXPDIR"
1 голос
/ 29 ноября 2010

Хотя решение @ initall жизнеспособно, вы теряете историческую информацию и т. Д. Я бы рекомендовал использовать svnsync, как вы сами предлагали.

Поскольку 1.5 svnsync может синхронизировать только поддерево исходного репо, поэтому я бы сказал, что это более чистое решение, и вы сможете иметь разные права доступа для каждого репо.Подробнее см. Раздел репликация репозитория в руководстве svn.

1 голос
/ 29 ноября 2010

Я предлагаю вам использовать внешние определения в качестве решения. Создайте новый репозиторий для подмножества библиотеки кода только для чтения и сопоставьте его с подпапкой проекта.

...