如何从 SVN (subversion) 存储库目录+文件中提取当前修订版本

如何从 SVN (subversion) 存储库目录+文件中提取当前修订版本

我有一个通过 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。它有子目录dbconfhookslocks。您可以使用以下命令在同一台计算机上检出此存储库

cd /home/user/somewhere/
svn list file:///some/dir/
svn checkout file:///some/dir/repos/proj1/rev102  proj1/rev102

您也可以svn update在新创建的子目录中执行此操作。

正如您所说,您可以在每次提交时调用命令。编辑该文件并将其重命名 hooks/post-commit.tmplhooks/post-commitin /some/dir.

相关内容