2016-11-03 5 views
0

ファイルAとB(およびDx.xx内の他のサブディレクトリとファイル)を持つDir 1.0.3とD-1.0.5を、ファイルAとBの次のバージョンツリー(バージョン管理、また、他のサブディレクトリやファイル)希望の結果を得るために差分ツールとパッチツールを使用できますか?

1.0.3 - 1.0.5

|

1.0.3.1(ヘッド)

私は、ファイルに関連付けられているのgitやsvnのツールへのアクセスを持っていないように私は差分とパッチツールを使用して1.0.3.1に1.0.5からの変更を適用したいと思います。

これは統一されたdiff形式(または何でも)を使用して可能ですか?可能であればどうすれば実現できますか(コマンドセットは実行する必要があります)?

私は、変更に関連するファイル名の追加、削除、または名前の変更がないことを確認しました。

多くの感謝!

答えて

0

はい、diffを使用して、2つのディレクトリツリーの違いを取得できます。いくつかの落とし穴があります。

  • 場合には、あなたが(ない古い木で)新しいファイルを持つディレクトリが追加または削除された場合、diffはについてあなたを教えてくれません、あなたは-Nオプション
  • を使用する必要がありますそれらのディレクトリ内のファイル私はその問題を回避するPerlスクリプトmakepatch(CPANより古いバージョン)を使用しています。単純なケース(なし追加/削除されたディレクトリ)、あなたは

    diff -Naur olddirectory newdirectory >myfile.diff 
    

    を使用すると私はパッチを適用するディレクトリのトップレベルでそれを適用するために

patch -p1 < myfile.diff 

を使用して、そのディレクトリの実際の名前による問題を排除します。 -p1オプションは、最上位ディレクトリの名前を破棄します。試みのため

diff -Naur 1.0.3 - 1.0.5 >mydiff.diff 
cd 1.0.3.1 && patch -p1 <mydiff.diff 
+0

おかげで、しかし、あなたが気づいた場合、私はちょうどolddirectoryと newdirectoryない3つのディレクトリを持っています。これらは、あなたのディレクトリの名前、現在のディレクトリのすべてのサブディレクトリであることを仮定して要約すると

、直接関連する2つのディレクトリをどのように相違させるかを教えてくれる多くのチュートリアルがあります。 3つのディレクトリ間の関係は上記のツリーのとおりです。要件を満たすようにコマンドを調整できますか? ありがとう –

関連する問題