3

デザイン時に Photoshop ファイルへの変更を追跡する新しい方法を試していますが、知りたいです。ファイルに変更が加えられた (保存された) ときにコミットを自動的に作成するスクリプトを作成することは可能ですか?

私はPixelapseなどのツールを使用していますが、いくつかの欠点があり、そのうちの 1 つは、Web サイトを読み込む必要があるため、以前のバージョンに戻すのが面倒なことです。

変更を Photoshop に保存するたびに、git でコミットを作成したいと考えています。

これを自動的に行うと、ファイルサイズが大きくなるなどの望ましくない影響が生じると確信していますが、他の提案も受け付けています。

更新:ちなみに、私は Mac OS X を使用しています。

4

3 に答える 3

1

シェル ループを記述して、ファイル ハッシュが前回から変更されたかどうかを確認し、変更された場合はコミットできます。ループにスリープを追加し、タイム スタンプをコミット メッセージとして使用できます。

個人的には、すべてではなく、有用なスナップショットをコミットする必要があるため、これは少し無意味だと思います。

于 2012-05-29T19:41:26.570 に答える
1

おそらくinotify-toolsはオプションです。

それらが MacOS X にも存在するかどうかはわかりません。Linux ユーザーは、yum install inotify-tools(RedHat) またはaptitude install inotify-tools(Debian/Ubuntu) でインストールします。

次に使用できますinotifywait

while [ true ]; do
  inotifywait -e modify test >/dev/null 2>&1
  echo "Do something"
done

バックグラウンドにするには、次のようにラップします。

{ while [ true ]; do inotifywait -e modify test >/dev/null 2>&1 ; echo "Do something" ; done }& echo $! > ~/inotitfy.something.pid

イベントが発生するとinotifywait終了し、この例では実行されます。を介してバックグラウンド プロセスを作成した後。バックグラウンド処理されたプロセス ID は にパイプされます。-eecho&~/inotitfy.something.pid

この方法でプロセスを強制終了して停止します。

kill -15 `echo ~/inotitfy.something.pid`

最初のバリアントをscreenに配置することもできます。

inotifyexec(Debian Squeeze のように) もあるかもしれないことに注意してください。

于 2012-12-27T17:55:44.967 に答える
0

私は似たようなものを探していましたが、 try-catch-finally答えに基づいて、これを思いつきました:

while git ls-files | inotifywait -q  -e modify --fromfile -; do 
  …something… (in your case probably git-commit)
done

これには、バージョン管理下にあるファイルのみが監視されるという利点があります。さらに、ほとんどの場合 の中にいるためinotifywait、簡単に強制終了できます ( をinotitfywait強制終了すると、「異常に」終了し、while終了します)。

move他のイベント、特にandmove_selfおよびおそらくcreateandについても考えることができますcreate_self(その後、いくつかのオプションも使用したい場合がありますgit ls-files)。

于 2016-01-12T11:06:11.577 に答える