-1

我们有一个经常复制的模板项目。所以我们可以定制副本并且仍然有一个通用的模板。

为了优化“复制和初始更改”过程,我虽然可以编写一个小脚本,但它执行以下操作:

  • 将项目模板(在 svn 中)复制到 svn 中的另一个目录
  • 签出项目并进行一些更改(更改某些文件中的名称)
  • 签入定制项目

问题是:最好的方法是什么?有这方面的经验吗?哪种类型的脚本(普通批处理或 java)?任何示例代码?

谢谢你的回答

4

2 回答 2

0

这是我与我在这里找到的一些信息放在一起的东西。

#!/bin/bash


searchterm="<ProjectName>"
replaceterm="New Project"
srcsvnrepo="file:///svnrepoaddress"
destsvnrepo="file:///data/newrepo"
dumpfile="/home/<user>/repo.dump"
tmpfolder="/home/<user>/tmp_repo"

svnadmin dump $srcsvnrepo > $dumpfile
svnadmin create --fs-type fsfs $destsvnrepo
svnadmin load $destsvnrepo < $dumpfile
svn co $destsvnrepo $tmpfolder

for file in $(grep -l -R $searchterm $tmpfolder)
  do
    sed -e "s/$searchterm/$replaceterm/ig" $file > /tmp/tempfile.tmp
    mv /tmp/tempfile.tmp $file
    echo "Modified: " $file
  done

svn ci $tmpfolder --message "Initial Check-In"

基本上,这会将指定源 svn repo 的备份转储到文件中,创建一个新的 repo,将备份加载到其中,检查文件,获取包含要搜索的字符串的文件列表,对每个文件执行正则表达式这些文件将新版本存储在临时位置,然后将临时文件移回原始位置,最后将更改检查回新存储库。

我尚未对此进行全面测试,因此可能需要进行一些小的调整,但基本步骤应该是正确的。请让我知道我是否犯了一些严重的错误计算,这完全行不通。

于 2008-10-08T14:29:39.397 回答
-1

只需一个 shell 脚本就可以了。

于 2008-10-08T14:22:09.787 回答