跟踪一段时间内对目录树的更改
有谁知道一个应用程序或者系统随时间的推移来跟踪对非源代码控制目录的更改(添加/删除的文件,文本文件的差异)?可以让你的东西
- 在时间A拍摄特定目录树的快照
- 在时间段B回来,看看发生了什么变化
- 在时间段C回来,看看自时间段A以来发生了什么变化,以及自时间段B以来发生了什么变化
源控制库不是这里的选择。我想要一种可以在目录结构上工作且不受任何版本控制的东西。我的小组不受所控制的服务器或者目录树的控制,但是对这些树的更改会影响我们,我们希望对其进行跟踪。 "源代码管理"的对象是
- 反对需要文档作者检入和检出的任何类型的集中存储库。
- 反对必须手动滚动/自动化一堆可以利用版本控制系统功能集的任务
我想要一个半成熟的软件包,人们在其中花了一些时间来思考问题。如果存在为处理这种事情而构建的版本控制系统,则适用。
解决方案
我想要看起来,味道和气味都像牛奶的东西。但这不应该是牛奶。
换句话说:我们正在描述一个vcs。如果我们告诉我们为什么不能使用vcs,可能会更容易回答。
我唯一能想到的就是Apple的Time Machine,它(再次)基本上是面向大众的vcs。
按设定的时间间隔自动将其提交到修订控制。如果我们不希望目录中有任何其他文件/目录,但是我们选择的存储库在工作副本中需要它们,那么请执行将目录内容复制到单独工作副本的过程。
我们需要源代码管理系统或者文档管理系统。
为什么不能选择源代码管理?通过Tortise SVN Windows集成,非程序员可以轻松使用SVN。"
听起来服务器没有太多选择。
这个怎么样?
1.在计算机上设置SVN存储库
2.每晚从目录复制到计算机并提交更改。
或者...
使用Windows"搜索"命令查找最近n天内更改的文件。每周手动运行报告。或者为该报告编写自动化。
选择确实是:
- 全面的源代码控制
- 像FileHamster这样的形式的源代码控制"精简版"
- 差异备份/还原工具
- 完整备份/还原和差异工具
- (我认为)日志文件系统。
仅使用标准目录,实际上没有其他方法可以做到这一点,而不必在其他位置保留副本,这实际上意味着它是源代码控制库。
我们要描述的是版本控制系统?因此,我不确定我是否理解为什么我们不想安装一个。我们可以非常容易地实现SVN / CVS的本地版本,并通过应用程序在其中进行接口(例如,添加新文件,删除旧文件)。可以使用计划任务或者某些方法定期执行此操作。
我还没有听说过其他可以使用的"简单"的东西。我猜是因为它已经完成了;)那么为什么要重新制作轮子呢……
我想我们可以看一下开源备份软件包。他们必须具有一些逻辑,以跟踪用于增量备份的文件更改。他们可能不会跟踪文件更改。
编写脚本计划任务,将目录树复制到另一个位置(可能在另一台计算机上),这是版本控制的存储库的一部分。然后,计划的任务将使用我们选择的版本控制系统自动提交更改(Mercurial应该在该系统上很好地工作,因为hg commit -A -m" automated snapshot"
将迅速完成我们需要的操作,而无需任何交互式提示)。
我建议为该副本使用rsync,该副本可用于许多平台,并且由于不会复制未更改的文件而又快速又有效。配置副本以从副本中删除已在主目录中删除的文件。
这是一个解决方案:
使用Subversion本地存储库并使用计划任务,该任务将定期提交文件(一个小时一次?)
一个简单的例子:
我们要跟踪的目录:
c:\ tracking_dir
我们存储差异数据和其他历史信息的目录:
c:\存储库
- svnadmin创建c:\ repository
- svn co file:/// c:/储存库c:\ tracking_dir \
- 设置应运行以下命令的计划任务:svn add c:\ tracking_dir 。svn ci c:\ tracking_dir 。-m"通过计划任务自动提交"
这样,我们就可以运行一个示例,并且可以通过任何Subversion前端访问历史记录