我有一个通过 Web 界面(等)管理的 SVN 存储库svn checkout https://server/repos/proj1
,一切正常。
现在,commit
我希望将最新版本复制到目录中,例如/home/user/somewhere/proj1/rev102/
在服务器上使用 shell 命令。
如果我没记错的话,你可以对每个命令调用一个命令commit
,我不太担心它是如何完成的(失败我可以创造一份cron
工作),但是:
如何使用本地运行的 shell 脚本从 svn repo 目录/文件中提取最新文件svn update
,而不使用 svn 登录机制等?所有文件都在那里并且可以从 shell 访问,所以这应该很容易吧?
答案1
svn login
如果您可以直接访问 svn 数据库的文件,则不需要。在服务器上的某个地方,您拥有 svn 数据库的根目录,例如目录/some/dir
。它有子目录db
、conf
、hooks
和locks
。您可以使用以下命令在同一台计算机上检出此存储库
cd /home/user/somewhere/
svn list file:///some/dir/
svn checkout file:///some/dir/repos/proj1/rev102 proj1/rev102
您也可以svn update
在新创建的子目录中执行此操作。
正如您所说,您可以在每次提交时调用命令。编辑该文件并将其重命名
hooks/post-commit.tmpl
为hooks/post-commit
in /some/dir
.