查找SVN工作文件夹的签出历史记录

时间:2020-03-05 18:51:01  来源:igfitidea点击:

我们有一个由SVN支持的Intranet站点,因此该站点是存储库的签出副本(仅IIS使用的工作文件夹)。今天,网站上的某些内容已引起问题,我想知道如何找出过去48小时内检出到该工作文件夹的内容。

更新:如果将来有需要启用的选项,那是什么?

另外,一个必然的问题是,如果必须使用文件创建时间,那么如何以递归方式快速处理大型文件夹?

如果必须检查创建时间,那么此问题也将对解决方案有所帮助。

解决方案

回答

我们可以在本地文件上使用创建日期。我们不能使用修改日期,因为Subversion会将这些日期设置为在结帐时最后更改的日期。

Subversion也可以记录结帐,但这是在服务器端

回答

如果我们以文件:// URL的形式访问SVN存储库,则取决于访问方式,我认为我们很不走运。但是,如果我们使用的是svnserve或者HTTP网关之一,则应该能够检查服务器日志中对SVN网址的访问。

回答

我将在Web文件夹中运行svn st(以查找自检出以来已更改的任何文件),并将其与存储库进行比较。

回答

Web文件夹中的所有代码都应由SVN提交支持,不是吗?

如果是这种情况,我们只需查看SVN日志中提交的最后几处更改,就可以轻松地找出问题所在。
svn info会告诉我们当前工作副本位于哪个修订版,因此我们知道从哪里开始查找

一旦找到其中包含错误的提交,我们就可以使用" svn blame"来找到执行该操作的人,并向他们解释他们忽略了什么以及它们是如何导致错误的。然后,我们可以让他们给所有人买午餐,以搞砸该网站。

如果我们在本地修改/添加了所有不在SVN中的文件,那么svn statsvn diff会告诉我们这些更改是什么,因此我们可以弄清楚它们是否也引起了问题。然后,我们应该还原这些更改,以便工作副本是干净的签出,或者将更改提交到存储库中。

没有比尝试在代码中查找错误,而是在3小时后发现该错误实际上不在任何代码中,而是在某些愚蠢的本地调整中,有人在工作副本中做出从未提交的错误更糟糕的方法:- (