是否可以使用subversion将单个文件提交到共享同一父目录的多个目录

时间:2010-10-23 11:18:38

标签: svn commit checkin

我想知道如何使用subversion工具一次性将文件/文件夹提交到多个文件夹。 我可以将文件放在多个文件夹中,然后进行提交,但我只想将它放在一个文件夹中,它应该在所需的文件夹中创建副本。有可能吗?

3 个答案:

答案 0 :(得分:2)

不,subversion只支持一个主存储库。但您可以从许多位置更新。提交一个地方,从其他地方更新,如Web服务器目录。如果你在那里做出改变,你也可以从那里做出改变。

答案 1 :(得分:0)

Apache Ant或Maven之类的东西可以帮助您完成此任务。

编辑:在预提交钩子中可能是这样的(在你的知识库/ hooks目录中创建一个'pre-commit'文件)(草稿版本):

#!/bin/bash

REPOS="$1"
TXN="$2"
SVNDIR=""
SVNLOOK="/usr/bin/svnlook"
NEWPATH="/path"

CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS" | $GREP "^[U|A]" | $AWK '{print $2}'`

for FILE in $CHANGED
do 
cp "$FILE" "$NEWPATH/$FILE" 
done

svn add -force "$SVNDIR" 

答案 2 :(得分:0)

如果您尝试重用中央文件,则可以使用svn:externals属性。将文件提交到存储库树中的某个中心位置,然后为该文件创建一个svn:externals属性(或者更好的是其父目录)。这样你就可以从任何地方(也就是被svn:externals引入它的位置)提交它,并重用它。