从SVN还原已删除的文件夹
在我的SVN文件夹中,有人删除了我们的项目源代码。使用SVN历史记录,我们无法识别删除这些文件的人。项目相关历史记录下未显示任何活动从SVN还原已删除的文件夹,svn,tortoisesvn,Svn,Tortoisesvn,在我的SVN文件夹中,有人删除了我们的项目源代码。使用SVN历史记录,我们无法识别删除这些文件的人。项目相关历史记录下未显示任何活动 是否有任何选项可以在不登录历史记录的情况下从SVN中删除文件夹 SVN服务器下是否有恢复这些文件的选项 感谢如果删除发生在SVN服务的后面,我可以想到的唯一方法是从SVN中删除,而不在日志中显示它(例如,有人登录到服务器并从命令shell中删除了文件/目录) 如果是这种情况,您可以从服务器上的备份还原文件/目录——假设服务器已备份。请注意,在这种情况下,您很可能可
感谢如果删除发生在SVN服务的后面,我可以想到的唯一方法是从SVN中删除,而不在日志中显示它(例如,有人登录到服务器并从命令shell中删除了文件/目录) 如果是这种情况,您可以从服务器上的备份还原文件/目录——假设服务器已备份。请注意,在这种情况下,您很可能可以访问源的早期版本(备份时),具体取决于人们最近提交到该目录的时间
当然,如果发生如上所述的删除,它很可能会打乱SVN簿记,因此您可能无法提交…如果删除发生在SVN服务后面,我可以想到的唯一方法是从SVN中删除,而不在日志中显示它(例如,有人登录到服务器并从命令shell中删除了文件/目录) 如果是这种情况,您可以从服务器上的备份中还原文件/目录(假设服务器已备份)。请注意,在这种情况下,您很可能可以访问源的早期版本(备份时),具体取决于用户最近提交到该目录的时间 当然,如果发生如上所述的删除,它很可能会打乱SVN簿记,因此您可能无法提交
SVNADMIN转储
/SVNADMIN加载
,并使用SVNDUMPFILTER
删除更改集,但我不认为这是您要问的问题……或者这可能是hap的问题吗佩内德SVNADMIN转储
/SVNADMIN加载
,并使用SVNDUMPFILTER
删除更改集,但我不认为这是您要问的问题……或者这可能是hap的问题吗佩内德除非回购严重受损,否则所有删除操作都将显示在日志中。我猜您查询的路径是错误的,可能是从工作副本发出
svn log
。子命令接受URL,因此您可以简单地:
svn log https://example.com/svn/project/
svn log https://example.com/svn/project/trunk/foo/bar@314 --revision 314:HEAD
而不是
svn log
…或:
svn log https://example.com/svn/project/trunk/
当然,如果您知道目录路径并知道它仍然存在的修订号,您可以简单地:
svn log https://example.com/svn/project/
svn log https://example.com/svn/project/trunk/foo/bar@314 --revision 314:HEAD
更新:尽管Lazy Badger出人意料地宣称,修订历史是Subversion的核心功能,不依赖于存储库访问方法:
E:\test>svnadmin create myrepo
E:\test>svn checkout file:///E:/test/myrepo mywc
Checked out revision 0.
E:\test>svn mkdir mywc\mydirectory
A mywc\mydirectory
E:\test>svn commit -m "Add a directory" mywc
Adding mywc\mydirectory
Committed revision 1.
E:\test>svn delete mywc\mydirectory
D mywc\mydirectory
E:\test>svn commit -m "Remove the directory" mywc
Deleting mywc\mydirectory
Committed revision 2.
E:\test>svn log -r2 -v file:///E:/test/myrepo/
------------------------------------------------------------------------
r2 | ALVARO.GONZALEZ | 2012-04-03 17:00:34 +0200 (mar, 03 abr 2012) | 1 line
Changed paths:
D /mydirectory
Remove the directory
------------------------------------------------------------------------
E:\test>
这是有道理的:无法跟踪更改将使Subversion完全无法作为版本控制工具使用。评论员可能会将svn log
中的日志与Apache维护的访问日志混淆,这是一件完全不同的事情,甚至无法通过Subversion命令读取
提交到存储库的任何删除都将显示在修订日志中,无论它是如何提交的,除非(我已经指出)存储库本身已损坏。除非repo严重损坏,否则所有删除操作都将显示在日志中。我猜您查询的路径错误,可能是从工作副本发出
svn log
。子命令接受URL,以便您可以简单地:
svn log https://example.com/svn/project/
svn log https://example.com/svn/project/trunk/foo/bar@314 --revision 314:HEAD
而不是
svn log
…或:
svn log https://example.com/svn/project/trunk/
当然,如果您知道目录路径并知道它仍然存在的修订号,您可以简单地:
svn log https://example.com/svn/project/
svn log https://example.com/svn/project/trunk/foo/bar@314 --revision 314:HEAD
更新:尽管Lazy Badger出人意料地宣称,修订历史是Subversion的核心功能,不依赖于存储库访问方法:
E:\test>svnadmin create myrepo
E:\test>svn checkout file:///E:/test/myrepo mywc
Checked out revision 0.
E:\test>svn mkdir mywc\mydirectory
A mywc\mydirectory
E:\test>svn commit -m "Add a directory" mywc
Adding mywc\mydirectory
Committed revision 1.
E:\test>svn delete mywc\mydirectory
D mywc\mydirectory
E:\test>svn commit -m "Remove the directory" mywc
Deleting mywc\mydirectory
Committed revision 2.
E:\test>svn log -r2 -v file:///E:/test/myrepo/
------------------------------------------------------------------------
r2 | ALVARO.GONZALEZ | 2012-04-03 17:00:34 +0200 (mar, 03 abr 2012) | 1 line
Changed paths:
D /mydirectory
Remove the directory
------------------------------------------------------------------------
E:\test>
这是有道理的:无法跟踪更改将使Subversion完全无法作为版本控制工具使用。评论员可能会将svn log
中的日志与Apache维护的访问日志混淆,这是一件完全不同的事情,甚至无法通过Subversion命令读取
提交到存储库的任何删除都将显示在修订日志中,无论它是如何提交的,除非(我已经指出)存储库本身已损坏。我的2美分:
/trunk/src/my/proj/client
:
svn拷贝
http://my.company.com/svn/repo/trunk/src/my/proj/client@4710
http://my.company.com/svn/repo/trunk/src/my/proj/
Repo: http://my.company.com/svn/repo/
/trunk
/src
/my
/proj
/server
/client (is deleted on revision 4711)
我的2美分:
/trunk/src/my/proj/client
应为