3 번째 수정본
(3 번째 수정본부터 3 번째 수정본까지의 변경사항)
(소소한 수정, 다른 사용자에 의한 수정)
(두 수정본의 내용이 동일하거나, 수정본을 비교할 수 없음.)
UseModWiki소스수정을 CVS에서 Git를 사용하는 걸로 옮긴 것까진 어찌어찌 했는데... 막상 소스 수정할 때마다 헷갈려서, 정리해둠
위키소스를 수정하는 작업용 디렉토리 내에는 기본적으로 다음처럼 두 개의 브랜치가 있음
---A---B---C master
\
S mywiki
-
master
: [github 저장소]에 올라가고, UseModWiki소스수정/Download에 tarball로 제공되는, 공개용 소스
-
mywiki
: 이곳 GyparkWiki 에 쓰기 위해 설정파일, 스타일쉬트, 매크로 등을 수정한 소스. 이것을 cgi-bin/wiki 디렉토리에 push를 하거나 그쪽에서 pull을 해서 갱신
- 앞으로 소스를 수정해 나가더라도, 항상 위와 같이
공개용 master 브랜치 + 내 홈페이지용 수정 = mywiki 브랜치
형태를 유지했으면 좋겠다.
희망:
---A---B---C---D---E---F master
\
S mywiki
- 안 그러면 계속 두 브랜치가 서로 병행해서 자랄텐데 나중에 이래저래 피곤할 것 같음
피하고 싶음:
---A---B---C---D---E---F master
\
S---D'--E'--F' mywiki
- 그리고 Git의 merge란 게... CVS를 쓸 때처럼 단지 소스가 병합되는 것이 아니라, 서로 별개의 브랜치 상에 있는 커밋을 다시 한 곳에서 이어서 진행하는 형태로 구성되더라. 그래서 history를 보면 자꾸 갈라졌다 합쳐지는게, 내겐 아직 적응하기가 힘들다. 최대한 rebase 기능을 써서, 변경내역이 하나의 선으로 나타나게 하고 싶다.
어려움:
---A---B---C---D---E---F master
\ \
S-----------F' mywiki
여기까진 좋은데, 시작부터 문제가 좀 있다.
- 추가하려는 기능이 특정 Perl 모듈이 필요하다고 해보자. 문제는 나는 서버에 root권한이 없어서 내 홈 계정에 모듈을 설치해야 하는데, 위키소스에 @INC에 그 특정 디렉토리를 추가한 채로 공개할 수는 없다. 이렇게 작업하는 동안에는 기본으로 수정되었다가, 최종 공개 시점에는 원상복구시켜놔야 하는 부분이 있다. 그래서 그 부분을 별도의 브랜치로 뽑았다.
I devel_base
/
---A---B---C master
\
S mywiki
- 게다가 mywiki 브랜치 쪽에도 문제가 있는게... 홈페이지주소간단히하기를 적용해 놨더니만, 작업하던 디렉토리에서 mywiki 브랜치를 체크아웃한 후 테스트를 해 보려 했더니, 링크들이 죄다 wiki/ 디렉토리로 걸리는 바람에 링크만 클릭했다 하면 작업 디렉토리를 벗어나버린다. 따라서 주소간단히하기 적용을 일단 취소해놔야 한다. 즉 mywiki를 테스트하려 해도 선행작업이 필요하고, 테스트가 끝나면 다시 되돌려야 한다는 얘기.
I devel_base
/
---A---B---C master
\
S mywiki
\
W mywiki_base
- 테스트는 I와 W커밋에서 시작해야 하는데, 최종 결과는 그 두 커밋은 빠져야 하고 C와 S의 라인에서 바로 이어져야 한다...는게 상황을 아주 귀찮게 만들고 있다.
그럼 전에 CVS로는 이런 문제가 없었냐 하면... 그 때는 아예 방법을 몰라서 매번 손으로 I와 W에 해당하는 작업을 해주고, 테스트가 끝난 후 다시 찾아서 지워줬다 -_-;;; 그래서 사실, 버전업된 위키소스 tar.gz 파일을 공개한 후에야 그걸 지우지 않았다는 걸 깨닫고 부랴부랴 다시 고치고 압축해서 공개하고 한 적도 많음. 게다가 공개용 소스에 고친 내용을 wiki/ 디렉토리에서 cvs update 했다가 병합 충돌이 생겨서 그거 고치는 동안 홈페이지 먹통되는 일도 종종. (보통은 잽싸게 백업파일로 되돌려놓지만)
(오늘 이 페이지 내용을 다 끝내고 자고 싶었는데 너무 졸리네... 내일은 고향 가는데...)
주인장분류 컴퓨터분류
<trackbackreceived>