3

多くのサブサイトでさまざまなコア スタイルシートを変更することで誰かがうめき声を上げたところを調べるための CSS ファイルがたくさんあります。元の開発者がある程度の先見性を持っていれば、マスター スタイルシートを含めて、必要な要素をオーバーライドしたことは明らかです…</p>

最初commはうまくいくのではないかと考え始めましたが、ソートされた入力ファイルを受け取る必要があることがすぐにわかりました。

次に、いくつかの読書と調査diffを通じて、次のように切り替えました。

diff --unchanged-group-format="@@ %dn,%df%c'\012'%<" --old-group-format='' --new-group-format='' --changed-group-format='' file_1.css file_2.css

前のものは明らかにほとんどありますが、次のとおりです。

A)行をgrepする必要があり@@ます(これで問題ありませんよね?一見これは正しいdiffように見えますが、ヤンクする必要がある他の予期しない行をスローしますか?)そして、

B)さらに 2 つのファイルを作成する必要があります。最初は file_1.css の残りの一意の行であり、次に file_2.css の残りの一意の行です。

明らかに、最初の「共通の」ファイルはインクルード フォルダに入り、その後に作成された 2 つのファイルに含まれます。@import url("common.css");

次の簡単な変更により、参照している後者の 2 つのファイルが作成されると考えています。

diff --unchanged-group-format='' --old-group-format="@@ %dn,%df%c'\012'%<" --new-group-format='' --changed-group-format='' file_1.css file_2.css

diff --unchanged-group-format='' --old-group-format='' --new-group-format="@@ %dn,%df%c'\012'%<" file_1.css file_2.css

サンプル ファイル:

ファイル 1: https://gist.github.com/c13843972c47b5037704

ファイル 2: https://gist.github.com/fff39eaae386e8969dc10

たとえば、次のテストを実行すると、次のようになります。

diff --unchanged-group-format="@@ %dn,%df%c'\012'%<" --old-group-format='' --new-group-format=''   --changed-group-format='' file_1.css file_2.css | egrep -v "^@@\d*" > common.css

diff --unchanged-group-format='' --old-group-format="@@ %dn,%df%c'\012'%<" --new-group-format=''   --changed-group-format='' file_1.css file_2.css | egrep -v "^@@\d*" > old.css

そして、 with を検索するbodyegrep "^body" *css、 にボディのみが生成され、 にはボディが生成されcommon.cssませんでしたが、とold.cssには 2 つの異なるエントリがあることが示されました。したがって、明らかにこの方法論には欠陥があります。file_1.cssfile_2.css

最終的に共通のインクルード ファイルとオーバーライド ファイルになるこれら 2 つのファイルを作成するにはどうすればよいでしょうか。

4

1 に答える 1

0

@ylluminate、いくつかのオプションがあります。

  1. BeyondCompare を使用して違いを視覚的に確認します。同様のファイルを比較する素晴らしい仕事をします。共通行/左のみの行/右のみの行を保存できます。唯一の欠点は、インタラクティブであり、ファイルが多い場合は時間がかかることです。良い面としては、まず数回テストして信頼を築きたいと考えているようです。
  2. --changed-group-format の書式設定テキストを追加し、変更されたコードをキャプチャします (およびコマンドが現在実行している古いコード)。古いコードではなく新しいコードにあるものを取得するには、もう 1 回比較を実行する必要があります。ここでの欠点は、検証が難しくなることです。
  3. すべての行をデータベース テーブルに保存し、列を比較することも別のオプションです。古い行番号と新しい行番号を保存するように注意してください。欠点は、データ行が一意である必要があり、空白行が切り捨てられることです。

ファイルが 50 個未満の場合は、オプション 1 を使用します。

お役に立てれば。

PS: 私は BeyondCompare とは何の関係もありません。ソフトウェアのただの幸せなユーザー

于 2013-10-11T14:30:34.150 に答える