1

Does anyone know of an application or system out there for tracking changes (files added/removed, diffs on text files) to a non-source controlled directory over time? Something that would let you

  1. Take a snapshot of a certain directory tree at time A

  2. Come back at time period B and see what has changed

  3. Come back at time period C and see what's changed since time period A, and what's changed since time period B

A source control repository isn't an option here. I want something that works on a directory structure that isn't under any kind of revision control. My group isn't in control of the servers or directory trees in question, but changes to those trees impact us and we'd like to keep track of them. The objects to "source control" are

  1. Objections to any kind of centralized repository that requires document authors to check-in, check-out.

  2. Objections to having to hand-roll/automate a bunch of tasks that can leverage a version control system's feature set

I want a semi-mature package where people have spent some time thinking about the problem. If there's a version control system that's been built to handle this kind of thing, it applies.

4

7 に答える 7

4

バージョン管理されたリポジトリの一部である別の場所 (おそらく別のマシン) にディレクトリ ツリーをコピーするスクリプト化されたスケジュールされたタスクを記述します。hg commit -A -m "automated snapshot"次に、スケジュールされたタスクは、選択したバージョン管理システムを使用して、変更を自動的にコミットします (Mercurial は、対話型プロンプトなしで必要なことをすばやく実行するため、このシステムでうまく機能するはずです)。

コピーにはrsyncをお勧めします。これは多くのプラットフォームで利用でき、変更されていないファイルをコピーしないため、高速で効率的です。メイン ディレクトリで削除されたファイルをコピーから削除するようにコピーを構成します。

于 2008-10-02T15:23:18.337 に答える
3

あなたのオプションは本当に:

  1. 完全なソース管理
  2. FileHamsterのような形式のソース管理「ライト」
  3. 差分バックアップ・リストア機能
  4. 完全バックアップ/復元および差分ツール
  5. (私は思う)ジャーナリングファイルシステム。

標準的なディレクトリだけでは、他の場所にコピーを保持せずにこれを行う方法は実際にはありません。これは、本質的にはソース管理リポジトリであることを意味します。

于 2008-10-02T15:18:12.517 に答える
0

これは解決策です:

Subversion ローカル リポジトリを使用し、ファイルを定期的に (1 時間に 1 回?) コミットするスケジュールされたタスクを使用します。

簡単な例:

追跡したいディレクトリ: c:\tracking_dir

差分データやその他の履歴情報を保存するディレクトリ: c:\repository

  1. svnadmin create c:\repository
  2. svn co file:///c:/repository c:\tracking_dir\
  3. 次のコマンドを実行するスケジュールされたタスクをセットアップします。

    svn add c:\tracking_dir*.*
    svn ci c:\tracking_dir*.* -m"スケジュールされたタスクによる自動コミット"

このようにして、実行中の例があり、任意の Subversion フロントエンドを介して履歴にアクセスできます

于 2008-10-09T14:59:07.650 に答える
0

牛乳のような見た目、味、香りのものが欲しい。しかし、それは牛乳であってはなりません。

言い換えれば、あなたは vcs を説明しています。VC を使用できない理由を教えていただければ、答えやすいかもしれません。

私が思いつくのは Apple の Time Machine だけです。これは (再び) 基本的に大衆向けの VC です。

于 2008-10-02T15:13:46.503 に答える
0

設定された間隔でリビジョン管理にコミットすることを自動化します。ディレクトリに余分なファイル/ディレクトリが必要ないが、選択したリポジトリが作業コピーでそれらを必要とする場合は、ディレクトリの内容を別の作業コピーにコピーするプロセスの一部を作成します。

于 2008-10-02T15:16:46.247 に答える
0

ソース コード管理システムまたはドキュメント管理システムのいずれかが必要です。

ソースコード管理がオプションではないのはなぜですか? SVN は、Tortise SVN ウィンドウ統合により、プログラマー以外でも簡単に使用できます。

サーバーには多くのオプションがないように聞こえます....

これはどう? 1. コンピュータに SVN リポジトリをセットアップします。 2. ディレクトリからコンピュータに毎晩コピーし、変更をコミットします。

または... Windows の「検索」コマンドを使用して、過去 n 日間に変更されたファイルを検索します。レポートを毎週手動で実行します。または、そのレポートの自動化を作成します。

于 2008-10-02T15:16:47.573 に答える
0

あなたが説明しているのはバージョン管理システムですか?! ですから、なぜインストールしたくないのか理解できません。SVN/CVS のローカル バージョンを非常に簡単に実装し、アプリケーションを介してインターフェイスすることができます (たとえば、新しいファイルを追加したり、古いファイルを削除したりします)。これは、スケジュールされたタスクなどを使用して定期的に行うことができます。

あなたが使用できる「シンプル」なものは他に聞いたことがありません。私はそれがすでに行われているからだと思います ;) では、なぜホイールを再作成するのですか...

オープン ソースのバックアップ ソフトウェア パッケージを見ていただければと思います。増分バックアップに使用されるファイルの変更を追跡するためのロジックが必要です。ただし、おそらくファイルの変更を追跡しません..

于 2008-10-02T15:19:52.840 に答える