1

有谁知道随着时间的推移跟踪非源代码控制目录的更改(添加/删除的文件,文本文件上的差异)的应用程序或系统?可以让你

  1. 在时间 A 拍摄某个目录树的快照

  2. 在时间段 B 回来看看发生了什么变化

  3. 在时间段 C 回来看看自时间段 A 以来发生了什么变化,以及自时间段 B 以来发生了什么变化

源代码控制存储库在这里不是一个选项。我想要在不受任何版本控制的目录结构上工作的东西。我的小组无法控制有问题的服务器或目录树,但对这些树的更改会影响我们,我们希望跟踪它们。“源代码控制”的对象是

  1. 反对任何需要文档作者签入、签出的集中式存储库。

  2. 反对必须手动/自动化一堆可以利用版本控制系统功能集的任务

我想要一个半成熟的包,人们花了一些时间思考这个问题。如果有一个版本控制系统被构建来处理这种事情,它适用。

4

7 回答 7

4

编写一个脚本化的计划任务,将目录树复制到另一个地方,可能在不同的机器上,它是版本控制存储库的一部分。然后,计划任务将使用您选择的版本控制系统自动提交更改(Mercurial 应该很好地适用于该系统,因为它hg commit -A -m "automated snapshot"可以快速完成您需要的操作而无需任何交互式提示)。

我建议为副本使用 rsync,它适用于许多平台,并且快速高效,因为它不会复制未更改的文件。配置副本以从您的副本中删除已在主目录中删除的文件。

于 2008-10-02T15:23:18.337 回答
3

你的选择真的是:

  1. 完全源代码控制
  2. FileHamster等形式的源代码控制“精简版”
  3. 差异备份/恢复工具
  4. 完整备份/恢复和差异工具
  5. (我认为)一个日志文件系统。

只有一个标准目录,如果不在其他地方保留一个副本,实际上是没有办法做到这一点的,这实际上意味着它是一个源代码控制存储库。

于 2008-10-02T15:18:12.517 回答
0

我想要看起来、尝起来和闻起来都像牛奶的东西。但它不应该是牛奶。

换句话说:您正在描述一个 vcs。如果您告诉我们为什么不能使用 vcs,可能会更容易回答。

我唯一能想到的是苹果的 Time Machine,它(再次)基本上是面向大众的 vcs。

于 2008-10-02T15:13:46.503 回答
0

以设定的时间间隔自动将其提交到修订控制。如果您不希望目录中有任何额外的文件/目录,但您选择的存储库在工作副本中需要它们,则将目录内容复制到单独的工作副本中。

于 2008-10-02T15:16:46.247 回答
0

您要么需要源代码管理系统,要么需要文档管理系统。

为什么源代码管理不是一种选择?通过 Tortise SVN windows 集成,非程序员可以轻松使用 SVN。

听起来您对服务器没有太多选择....

这个怎么样? 1. 在您的计算机上设置一个 SVN 存储库 2. 每晚从目录复制到您的计算机并提交更改。

或者... 使用 Windows“搜索”命令查找过去 n 天内更改的文件。每周手动运行报告。或者为该报告编写自动化程序。

于 2008-10-02T15:16:47.573 回答
0

你说的是版本控制系统?!所以我不确定我是否理解你为什么不想安装一个。您可以很容易地实现本地版本的 SVN/CVS 并通过您的应用程序在其中连接(例如添加新文件,删除旧文件)。这可以使用计划任务或其他东西定期完成。

我还没有听说过你可以使用的其他“简单”的东西。我猜是因为它已经完成了;)那么为什么要重新创建轮子...

我想你可以看看一个开源备份软件包。他们必须有一些逻辑来跟踪用于增量备份的文件更改。他们可能不跟踪文件更改虽然..

于 2008-10-02T15:19:52.840 回答
0

这是一个解决方案:

使用颠覆本地存储库并使用计划任务,该任务将定期提交您的文件(每小时一次?)

一个简单的例子:

您要跟踪的目录: c:\tracking_dir

您存储差异数据和其他历史信息的目录: c:\repository

  1. svnadmin 创建 c:\repository
  2. svn co file:///c:/repository c:\tracking_dir\
  3. 设置应运行此命令的计划任务:

    svn add c:\tracking_dir*.*
    svn ci c:\tracking_dir*.* -m"通过计划任务自动提交"

这样,您就有了一个正在运行的示例,并且可以通过任何颠覆前端访问历史记录

于 2008-10-09T14:59:07.650 回答