Cohen의 자체 Python 구현은 독립 실행 형을 실행하기 위해 (아래) 사소한 조정이 필요합니다.
http://stuff.mit.edu/afs/athena/system/i386_deb50/os/usr/share/pyshared/bzrlib/patiencediff.py 및 http://stuff.mit.edu/afs/athena/system/i386_deb50/os/usr/share/pyshared/bzrlib/_patiencediff_py.py
첫 번째 파일 이 약은 diff 같은 명령 줄에서 실행할 수 있습니다 : 그것은 내가 "difflib 인내심을"인터넷 검색에 의해 암초에 걸렸다 사본있는 두 개의 파일에 있습니다. 두 번째는 내부 루프의 Python 구현입니다. (단일 파일 ?? 독자를위한 연습!) bzrlib에는 내부 루프의 C 구현도 있습니다. 여기
(프로그램 자체의 도움으로) 내 패치는 그들이 독립 실행되도록 할 수 있습니다 :
Sandy$ patiencediff.py --patience orig/patiencediff.py patiencediff.py
--- orig/patiencediff.py
+++ patiencediff.py
@@ -15,14 +15,20 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+try:
+ from bzrlib.lazy_import import lazy_import
+ lazy_import(globals(), """
+ import os
+ import sys
+ import time
+ import difflib
+ """)
+except:
+ import os
+ import sys
+ import time
+ import difflib
-from bzrlib.lazy_import import lazy_import
-lazy_import(globals(), """
-import os
-import sys
-import time
-import difflib
-""")
__all__ = ['PatienceSequenceMatcher', 'unified_diff', 'unified_diff_files']
@@ -135,11 +141,18 @@
PatienceSequenceMatcher_c as PatienceSequenceMatcher
)
except ImportError:
- from bzrlib._patiencediff_py import (
- unique_lcs_py as unique_lcs,
- recurse_matches_py as recurse_matches,
- PatienceSequenceMatcher_py as PatienceSequenceMatcher
- )
+ try:
+ from bzrlib._patiencediff_py import (
+ unique_lcs_py as unique_lcs,
+ recurse_matches_py as recurse_matches,
+ PatienceSequenceMatcher_py as PatienceSequenceMatcher
+ )
+ except ImportError:
+ from _patiencediff_py import (
+ unique_lcs_py as unique_lcs,
+ recurse_matches_py as recurse_matches,
+ PatienceSequenceMatcher_py as PatienceSequenceMatcher
+ )
def main(args):
Sandy$ patiencediff.py --patience orig/_patiencediff_py.py _patiencediff_py.py
--- orig/_patiencediff_py.py
+++ _patiencediff_py.py
@@ -15,11 +15,16 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+from __future__ import print_function
from bisect import bisect
import difflib
-from bzrlib.trace import mutter
+try:
+ from bzrlib.trace import mutter
+except:
+ import sys
+ def mutter(msg):
+ print (msg, file=sys.stderr)
__all__ = ['PatienceSequenceMatcher', 'unified_diff', 'unified_diff_files']
Sandy$
을 나는 두 개의 파일에 그것을 실행하는 자식을 사용하여 무엇? 그건 그냥 안 좋은 것 같아. 그것은 나에게 결코 일어나지 않았다. 이제는 이것이 잘 작동하는 것을 보았습니다. 확실히 사용할 것입니다. 하지만 많은 시스템에는 git이 설치되어 있지 않습니다 ... –