我正在编写一个 shell 脚本,它可以存储 SVN 工作副本的实际状态并在以后恢复它,就像它一样。目前,我对似乎无法检测到的文件和目录修订的特定、罕见组合存在问题。
假设有一个包含两个修订版的存储库。有两种情况:
假设这
foo
是一个仅存在于修订版 2 中的文件(或目录)。一开始,整个工作副本位于修订版 2。然后foo
(并且仅foo
)更新到修订版 1。假设这
bar
是一个仅存在于修订版 1 中的文件(或目录)。一开始,整个工作副本位于修订版 1。然后bar
(并且仅bar
)更新到修订版 2。
这两种情况非常相似,但似乎它们有不同的解决方案。在这两种情况下,文件(或目录)都会消失。但是,命令的输出不svn status
包含有关此的信息。
如何通过 shell 脚本创建此类文件和目录的列表?
有一个简单但不好的解决方案。可以使用命令svn list
获取当前版本中应该存在的文件列表,并将其与实际存在的文件列表进行比较。
这种解决方案是不可接受的,因为它需要大量时间并且会产生大量的服务器流量。
我发布了我能想到的最佳答案。尽管如此,它只适用于第一种情况并且有误报。