Linux2010. 2. 23. 18:05
일반적으로 패치는 diff -urN 옵션으로 만드는데
-u는 Unified의 약자이다.

아무튼 대충
diff -urN linux-2.6.17.14_stm22_0039_STFAE_ORI/.config.old linux-2.6.17.14_stm22_0039_STFAE/.config.old
--- linux-2.6.17.14_stm22_0039_STFAE_ORI/.config.old    2007-11-29 16:36:18.000000000 +0900
+++ linux-2.6.17.14_stm22_0039_STFAE/.config.old        2009-05-27 15:27:09.000000000 +0900
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.17.14
-# Thu Nov 29 16:36:17 2007
+# Wed May 27 15:27:09 2009
 #
 CONFIG_SUPERH=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
요런식으로 내용이 나오는데, 아래와 같은 의미이다.

비교된 파일은 --- linux-2.6.17.14_stm22_0039_STFAE_ORI/.config.old 파일로 부터 (원본)
+++ linux-2.6.17.14_stm22_0039_STFAE/.config.old 파일을 보고 작성되었으며 (수정본)

@@ -1,7 +1,7 @@
--- 파일의 1에서 7라인이 삭제되고  (~라인 까지가 아니다)
+++ 파일의 1에서 7라인이 추가된다. (~라인 까지가 아니다)
(7개 라인이라는데 8개 라인인 이유는, 추가/삭제된 표시 때문이다. 이를 제외하면 원래 길이인 7줄이 나온다)

삭제된 내용은 -# Thu Nov 29 16:36:17 2007
추가된 내용은 +# Wed May 27 15:27:09 2009
이다.

The unified output format starts with a two-line header, which looks like this:

--- from-file from-file-modification-time
+++ to-file to-file-modification-time

You can change the header's content with the `-L label' or `--label=label' option; see See section Showing Alternate File Names.

Next come one or more hunks of differences; each hunk shows one area where the files differ. Unified format hunks look like this:

@@ from-file-range to-file-range @@
 line-from-either-file
 line-from-either-file...

The lines common to both files begin with a space character. The lines that actually differ between the two files have one of the following indicator characters in the left column:

`+'    A line was added here to the first file.
`-'    A line was removed here from the first file.

[링크 : http://www.chemie.fu-berlin.de/chemnet/use/info/diff/diff_3.html]


2009/06/10 - [Linux] - diff 로 patch 파일 만들기

Posted by 구차니
프로그램 사용/vi2009. 10. 29. 14:54
vi 스타일의 syntax highlight를 지원하는 diff 프로그램이다.
(말만 거창하지 간단하게 말하면 윈도우용 diff 프로그램처럼 나온다는 의미)



[링크 : http://amjith.blogspot.com/2007/07/visual-diff-tools-in-linux.html]
[링크 : http://linux.die.net/man/1/vimdiff]



1) vim a.c
2) :diffs b.c (:diffsplit b.c 로도 사용할 수 있습니다.)
3) ^wJ

vi에서 diff 모드로 변환하는 방법

$ ll /usr/bin/vi*
-rwxr-xr-x 1 root root 2737228 Sep 29  2006 /usr/bin/vim
lrwxrwxrwx 1 root root       3 Jul 22 01:14 /usr/bin/vimdiff -> vim

vi는 리눅스 프로그램답게(?) 같은 프로그램을 실행명을 바꿈으로
mode를 바꾸어 실행하는 trick을 가지고 있다고 한다.

[링크 : http://kldp.org/node/1155]



'프로그램 사용 > vi' 카테고리의 다른 글

vi set commands  (0) 2010.01.27
root는 왜 vi에서 컬러로 안나오나요?(how enable syntax high light on root)  (0) 2009.10.29
VI 자동 줄 정렬  (0) 2009.10.06
vi auto indent  (0) 2009.10.06
busybox 1.14.3 vi editor  (0) 2009.09.16
Posted by 구차니
TortoiseSVN에는 Diff / Merge 툴이 내장되어 있다.
Diff/Merge 프로그램은 외관상으로는 WinMerge와 유사하고, 동일 프로젝트를 변형해서 사용하는게 아닐까라는 생각이 든다.
아무튼 이러한 개인적인 추측은 패스하고~ 장점과 단점을 말하자면 다음과 같다.

   WinMerge  TortoiseMerge
 Syntax Highlight  지원  미지원
 UTF-8 지원  지원  미지원
 네비게이션 부분 확대  미지원  지원


일반적인 소스를 다루는 경우에는 UTF-8 을 굳이 지원해야 할 필요는 없지만,
현재 다국어지원 작업을 하는데 UTF-8을 지원하지 않는 다면 아래와 같이 선택할 경우에 글씨가 깨지는 문제가 발생한다.


TortoiseMerge - 좌측의 네비게이션 부분확대가 매력적이다. (확대해서 비교해 보세요!!)
색상이 있는 줄이 차이점 부분이 확대된 것이고, 아래의 흐릿한 선들이 원래 크기의 차이점 부분표시이다.

WinMerge - 네비게이션을 제외하면 전반적으로 WinMerge가 낫다


구버전의 TortoiseCVS의 경우에는, 기본 비교/병합 프로그램이 없어, 무조건 하나만 입력이 가능한 단점이 있었지만,
TortoiseSVN은 내장 비교/병합 프로그램이 있어서, 사용하지 않더라도 외부 프로그램의 링크는 사라지지 않아 좋다.


남아있는 External Link (화면 배색문제로, 일반적인 pc에서는 회색으로 보임)




또 다른 TortoiseSVN의 내장 비교툴로 IDiff가 있다(Image Diff)
말그대로 이미지를 비교 하는 것인데, I가 굴림체인지라 Diff밖에 눈에 안들어 온다.


위의 이미지가 이미지 비교 프로그램, 아래는 소스 비교 프로그램

이 포스트에 들어간 이미지 a.png와 c.png를 비교한 화면이다

비교 옵션 중 겹쳐보기로 본 비교화면 (Overlay Mode)

비교 옵션 중 혼합 겹쳐보기로 본 비교화면 (Overlay Mode + Alpha Blend)
Posted by 구차니
프로그램 사용/meld2009. 2. 13. 21:01
한국 복귀 기념으로 블로그 순회하다가
Mr.Dust 님의 블로그에서 meld라는 프로그램을 발견했다.

처음에 스샷 만 봐서는 WinMerge인줄 알았는데, 리눅스용 GUI Diff 툴이라고 한다. Gnome ,python 기반이다.


디렉토리 비교 / 파일 비교

홈페이지에서 보니 i18n 지원되고(간단하게 다국어 지원), 디렉토리 비교는 WinMerge 보다 나은 것 같다.
[공식 : http://meld.sourceforge.net/]


덧 : meld라길래 무슨 daemon 인 줄 알았네 ㄱ-
Posted by 구차니
폴더 비교 / 파일 비교가 되는 윈도우용 GPL 라이센스의 비교 프로그램입니다.
Araxis가 좋긴하지만.. 거금이다 보니 무료 프로그램을 찾게 되었는데
acroedit에 들어 있는 acrodiff는 폴더 비교는 아직 지원하지 않아서 acroedit 공식홈페이지에서
글들을 찾아 보니 WinMerge를 추천하는 글이 있어서 따라가 보았습니다.


■ file 비교

■ folder 비교


일단 비교 대상은 평소에 사용하던 Araxis Merge 입니다.

장점 : 무료(GPL 라이센스)이다.
         Araxis 대비 Syntax Highlight가 지원되어 좋다.
         Syntax를 추적해서 비교 하므로 Araxis 보다는 문법 차이를 비교 하기 편하다.
         Context Menu 지원한다.(Araxis도 지원함)
         폴더 비교를 지원한다(Acrodiff 대비)
         설치프로그램 용량이 적다(5MB, Araxis 60MB 이상)

단점 : Araxis 스타일로 사용하기 위해서는 상당한 환경 설정이 필요하다.
             - Folder 비교 옵션은 Araxis는 트리 구조로 나오지만 WinMerge는 리스트 형식으로 나와서
                폴더 단위 비교는 조금 불편하다
             - Folder 비교시 Araxis는 업데이트를 실시간으로 하지만 WinMerge는 한번에 다 비교하고 출력하므로
                비교하는데 걸리는 체감시간이 더 길게 느껴진다.
             - Folder 비교시 비교 결과에서만 차이점을 볼 수 있다. (Araxis는 폴더 비교시 파일에 색상이 칠해짐)
             - 우측의 위치 비교는 두개를 합쳐 놓아서 공간을 더 차치 하는 느낌이 든다.
        비교 대상이 없는 파일일 경우 그냥 메모장으로 실행된다.
             - 외부 편집기 설정가능하지만 사용자에 따라 판단이 엇갈릴 수 있음

[WinMerge : http://winmerge.org/]
[WinMerge Portable : http://portableapps.com/apps/utilities/winmerge_portable]

Araxis와 유사하게 사용하기 위한 설정은 아래의 더보기를 클릭해주세요!
Posted by 구차니