私はまだオンラインSVNツールに取り組んでおり、今回はdiff
計算で再び行き詰まりました。
test.txt
私はdiffでこの結果を与えるテストファイルを作成しました:
Index: C:/data/aaxc/test.txt
===================================================================
--- C:/data/aaxc/test.txt (revision 8)
+++ C:/data/aaxc/test.txt (working copy)
@@ -1,3 +1,5 @@
-Fully new line
+Fully new line 1
{2nd modified line}
Specia$ čhar līne
+
+Nice one!
\ No newline at end of file
その後、配列を作成しています。
$data = explode( "\n", $svn_result );
$result = array();
for ( $k=2; $k<sizeof($data); $k++ ) {
# checks for filename
if ( substr( $data[$k], 0, 3 ) == '---' ) $result['left'] = substr( $data[$k], 4 );
else if ( substr( $data[$k], 0, 3 ) == '+++' ) $result['right'] = substr( $data[$k], 4 );
# check for changes
else if ( substr( $data[$k], 0, 1 ) == '-' ) $result['-'][] = substr( $data[$k], 1 );
else if ( substr( $data[$k], 0, 1 ) == '+' ) $result['+'][] = substr( $data[$k], 1 );
}
そして出力:
Array
(
[left] => C:/data/aaxc/test.txt (revision 8)
[right] => C:/data/aaxc/test.txt (working copy)
[-] => Array
(
[0] => Fully new line
)
[+] => Array
(
[0] => Fully new line 1
[1] =>
[2] => Nice one!
)
)
これまでのところ良いですが、どうすれば魔女のラインが変更されていることを確認できますか?現在、変更点を強調表示しようとすると、正しく強調表示されるかどうかはわかりません。
たぶん、これをすでに実行しているスクリプトがありますか?
現在、小さな変更では正常に機能していますが、大きな変更では間違いなく失敗します。