레이블이 mercurial인 게시물을 표시합니다. 모든 게시물 표시
레이블이 mercurial인 게시물을 표시합니다. 모든 게시물 표시

2011년 11월 3일 목요일

Mercurial 2.0 has added largefiles extension (older r. are downloaded on demand)

Mercurial 2.0 has added largefiles extension (older r. are downloaded on demand)
LargefilesExtension

현재 hg 만족하면서 쓰고 있는데 덩치큰 리소스 파일들 처리가 좀 애매하다.
저링크 기억해두고 후에 도입을 검토해봐야 할듯.

2010년 12월 14일 화요일

mercurial 리파지토리를 dropbox 로 관리중인데 일부 리파지토리가 깨졌다

오늘 리눅스 세팅하면서 내 개인 리파지토리에서 클론을 해대다가 깨진것 발견.
흠. 검색해보니 나만 겪는 문제는 아닌듯하다.

http://forums.dropbox.com/topic.php?id=5579
http://stackoverflow.com/questions/1964347/mercurial-and-i-guess-git-with-dropbox-any-drawbacks

리파지토리 보관할 다른 방법을 찾아봐야겠다.
집에 다시 서버를 돌려야 하나?

2010년 6월 8일 화요일

cmake 로 버전 컨트롤 리비전 매번 따오기

make 때는 어렵지 않았는데 cmake 는 좀 성가시네
아래 링크 한번 읽어보자.
http://www.mail-archive.com/cmake@cmake.org/msg25922.html

우리프로젝트에 아직 적용하지 않은상태.
후에 필요하면 위 방법 시도해보자.



2010년 5월 12일 수요일

Gource, 버전 컨트롤 비쥬얼라이저


http://code.google.com/p/gource/

동영상만 보면 뭔지 알수있다.
우리소스에 돌려보니 재미남!
간만에 reddit 구경하다 건진거




2010년 3월 18일 목요일

mercurial subrepo

http://mercurial.selenic.com/wiki/subrepos

리소스가 덩치가 너무 커서 subrepo 를 이용 소스코드와 리소스를 분리해봤다.
근데 subrepo 쓰기가 좀 까다롭네. 아래쪽 리파지토리에서 푸쉬를 한후 위쪽 리파지토리에서 커밋을 해줘야 한다. 이 커밋을 잊지말자.

그리고 버그인지 clone 직후 default-path 가 이상하게 들어있다.( 패스구분자가 / 와 \ 가 섞인다) 현재는 매번 clone 후 수작업으로 손보고 있긴 한데... 뭐 수정되겠지

두가지만 기억해두자.
  상위리포에서 커밋 잊지말것.
  hg debugsub 명령 기억해둘것.


2010년 1월 30일 토요일

mercurial, 로컬에서만 ignore 하기

필요없는 파일은 맞는데 .hgignore 에 넣기는 후달릴때 쓰는 방법
참고 에 소개되어있다. hg st 때렸을때 깔끔하게 프롬프트만 떨어지게 하고 쓰자. 무시하고 살다보면 add 를 까먹기도 한다.


워킹카피내의 .hg/hgrc 에 아래내용 추가하고 hgignore 작성하면 끝.

[ui]
ignore = /path/to/repo/.hg/hgignore



2010년 1월 25일 월요일

무료 웹하드류 서비스에 mercurial 리파지토리 올리는 시도중

흠. 집에 항상 켜두는 PC 가 있어서 거기 colinux 를 깔고 hg 서버로 활용했는데 이제 그렇게 쓰기 힘들게 됐다. 그래서 전부터 생각해오던 몇가지 대안을 테스트중.

1. 유료 웹호스팅 활용.
몇몇 호스팅의 경우 계정에 hg 설치가 가능해서.. 충분히 써먹을수 있지만 난 돈이 없다.

2. svn, hg 무료 호스팅 서비스
용량 작거나 라이센스 제한.

3. N 드라이브
네이버 서비스인데, 드라이브가 N 으로 잡혀서 콘솔에서 쓰기 쉬운게 매력적.. 이라고 생각했었지만 hg clone 부터 실패하더라. 흠. 제길슨.

4. 드랍박스
헐 이미 다른용도로 용량을 거의 다 쓰고 있어서.. 그리고 무료계정은 2기가를 주는데 그다지 넉넉치 못하다. 그래도 가장 나아보인다.

5. 라이브메쉬
현재 라이브메쉬로 hg 리파지토리 폴더를 동기화중.. 느리고 동기화가 얼마나 진행됐는지 알기 어려운데.. 흠 달리 대안이 없으니 일단 이걸 써볼 예정. 하지만 리눅스 미지원때문에
오래 쓰진 못할것같다.



으음.. 전에 S3 에 리파지토리 올리는거 찾아보다가 말았는데 다시 뒤져보자.
유료라 쓰진 않겠지만..

아.. skydrive 도 한번 고려해보자.. 이쪽은 서드파티 클라이언트들을 좀 뒤져봐야 겠다.



2010/01/26
흠 mesh 는 좀 요상하네. 분명 수정을 했는데 싱크가 되지 않고 있더라.. 음.. 5G 는 매력적인데 어차피 리눅 미지원이니 별 고민없이 드랍박스로 세팅했다. 현재 드랍박스에 동기화중.
존내 느린건 마찬가지...
언제 짬내서 보너스용량 받아 챙겨야겠다.
https://www.dropbox.com/referrals/NTEyOTUzMjE5
적어둬야지..


2010/02/02
push 중 lock 됐다는 에러가 뜨던데 이글을 참고하여 .hg/store/lock 을 지워버렸다.
흠. 집에서 PC 를 끌때 동기화가 잘 안된건가???



2009년 8월 20일 목요일

mercurial 을 ssh 통해서 사용하기 - 좃스팟에 썼던 글 백업

유닉스 등에서 간단한 사용법 path 를 줄때 // 가 들어간다는것만 기억하삼

ssh 를 통한 clone

hg clone ssh://누구@어느호스트//경로/경로
호스트와 path 사이에 / 가 두개 들어간다는것만 기억해두자.
~id 를 쓸때는 모양이 좀 달라져서 / 하나로 충분. 즉 ssh://yoonkn@192.168.0.7/~yoonkn/emacsssh://yoonkn@192.168.0.7//home/yoonkn/emacs 는 동일 ( 물론 ~yoonkn 이 /home/yoonkn 일때 )

그외 상세한것은 http://hgbook.red-bean.com/hgbookch6.html 를 읽어보면 될듯


win32 에서 간략히 쓰는 방법. 안전하지는 않다.

만 약 win32 환경이라면 키를 만들고 agent 띄우는 삽질을 해야 하는데.. 이거 짱나서 못할짓이니 좀 엄하지만 암호를 그냥 커맨드라인에서 쳐버리자. 편한게 좋은거지... 윈도머신까지 정말 안전하다는 보장이 있다면 ini 등에 -pw 옵션까지 박아버리는 수도 있지만 이건 좀 모양이 안좋다. 환경변수에서 ssh client 를 가져가는 방법이 있으면 좋겠는데... 암호치는것 누가 등뒤에서 봐도 좀 곤란한 일이니까.. 흠 메뉴얼을 뒤져보고 만약 없다면 적당한 배치파일을 만들자.

안전하지 않지만 편리한, plink 를 통한 ssh 통신 방법

hg clone -e "plink -pw 암호" ssh://누구@어느호스트//경로/경로

추가. push/pull 이 생각처럼 자주 하는일이 아니네. 그냥 ssh 날로 쓰고 매번 암호 물어볼때마다 쳐주는것도 할만 하다. plink 가 필요에 따라 똘똘하게 대화창으로 암호묻는것도 맘에 든다.

리눅스 서버에서 특정 id 의 ssh 접근을 ip 별로 블럭하기

위 에서 적은대로 사무실의 내 데스크탑(우분투)를 임시로 메인 리파지토리로 사용하고 있다. 그런데 윈도에서 접근하려면 아주 성가시므로 암호를 아예 없애거나 간단한 단어를 쓰려고 생각중인데.. 따라서 내가 원하는 몇몇 호스트를 제외하고는 ssh 접근을 막아야만 했다. 처음엔 간단히 /etc/hosts.allow 와 /etc/hosts.deny 를 수정하면 되겠지 했는데 이게 잘 안되더라.. 결국 구글링해서 적당한 방법을 찾아내고 여기 적어둔다.

http://www.cyberciti.biz/tips/openssh-root-user-account-restriction-revisited.html 를 참고하자. 내가 했던 절차를 적어둔다.

  1. /etc/pam.d/ssh 에서 account  required     pam_access.so 부분의 주석을 벗겨줬다.
  2. /etc/init.d/ssh restart 를 이용 sshd 를 재시작 해줬다.
  3. /etc/security/access.conf 에 다음 내용을 추가했다. foo 사용자의 접근을 111.111.111.111, 222.222.222.222 를 제외한 모든 장비로부터 막는 예제이다. 실제 사용을 위해서는 로컬호스트도 풀어주고 해야겠지...
  - : foo : ALL EXCEPT 111.111.111.111 222.222.222.222


추가. UbuntuFireWall 을 쓰면 비교적 쉽게 이런 세팅이 가능하다. hg serve 명령으로 여러개의 리파지토리 서빙하기 참고.

pageant 를 이용해서 암호 입력 생략하기 (windows)

내래 agent 쓰는걸 별로 안좋아하고 매번 암호치는 놈이니 이렇게 쓰지는 않지만 그냥 적어둔다. 언제 기호가 바뀔지 모르지.

이하는 사전작업. 자신의 공개키/비밀키를 만들고 서버에 공개키를 등록하는 과정.
  1. windows 에서 putty 깔렸다 치고
  2. puttygen 으로 적절히 키 생성.
  3. puttygen 에 생성된 공개키를 서버(여기선 mercurial 리파지토리가 될 놈이겠지)의 ~/.ssh/authorized_keys 에 추가. 없으면 새로 생성. 이 ~.ssh 이하는 퍼미션이 700 또는 600 으로. group 이나 others 에 권한이 있다면 에러가 날 가능성이 있다. 물론 공개키를 로컬에도 남겨둬야 여기저기 써먹지. 난 주로 c:\public.key 에 남긴다.
  4. puttygen 에서 비밀키를 저장하자. 난 c:\private.ppk 란 이름 주로 사용
이하는 접속할때마다 해줄 작업. 당연히 클라이언트(여기선 윈도) 에서만 해주면 된다.
  1. pageant 를 띄워서 add key 로 c:\private.ppk 추가. 필요하다면 ppk 로딩하는 배치파일을 시작프로그램 넣어서 자동화. 뭐 필요할때마다 띄워도 충분. 보통 키생성시에 passphrase 를 걸어줄텐데 그럴경우 자동시작 하기가 좀 꺼려진다...
  2. cmd 창을 열어서 plink 가 pageant하고 통신을 하는지 확인해보자. plink -i private.ppk yoonkn@111.111.111.111 hg version
  3. 끝. putty GUI 버전을 자주 쓴다면 적절히 세팅.

ssh 통해서 mercurial 을 쓸때 통신 데이타 압축하기

hgbook 을 보니 mercurial 은 로컬에 델타데이타를 저장할때 gz 형식을 쓰고 hg serve 를 통해서 http 통신을 탈땐 bz2 방식으로 압축을 하는데 ssh 를 탈때는 압축을 하지 않는다고 한다. ssh 가 압축기능을 가지고 있다고 하기 때문인데 이럴경우 ssh 또는 plink 에 -C 옵션을 줘야 한다... Mercurial.ini 등에 ssh 설정이 있을텐데 -C 를 추가하도록 하자. tortoise hg 는 이걸 기본적으로 안해주더라. 자잘하게 손이 많이 가네...

리눅스에서 ssh agent 사용해서 암호입력 생략하기

위에 윈도에서 하는 방법을 적고 나니 이것도 같이 적어줘야 겠다는 생각이 드네. http://wiki.kldp.org/wiki.php/UsingSshAgent 에 정리가 잘되어있으니 참고하자.
  1. ssh-keygen 으로 키 생성.
  2. ssh-copy-id yoonkn@111.111.111.111 명형으로 공개키 추가. 물론 pageant 때 처럼 수작업 해줘도 되겠지.
  3. 끝. 이제 ssh yoonkn@111.111.111.111 ls 로 확인해보자.




2009년 1월 30일 금요일

블라블라 forge 류 소프트웨어들

http://en.wikipedia.org/wiki/Forge_(software)

간만에 mercurial 위키를 구경하다가  InDefero 링크를 보게되서 좀 구경해보다가 아예 위키피디아 링크도 걸어둔다. 저쪽엔 언급이 없지만 네이버의 nFORGE (GForge 기반)란게 있다는것도 기억해두고..

forge 류 소프트웨어들을 하나쯤 돌리면 개발이 편해질것 같은 느낌이 들기도 하지만.. 설치와 관리를 생각하면 우울해진다. 저걸 돌릴정도로 참여자가 많은 상태도 아니고..



PS.

음 hg 위키를 찾아간게 1.1 부터 추가된 북마크 기능때문이었는데.. git 에서 정말 맘에 드는 기능인 로컬브랜치를 구현한거라 꼭 써보고 싶었지만 현재 우분투 intrepid 가 mercurial 1.1 패키지를 제공하지 않아서 그냥 구경만 했다.

https://launchpad.net/~maxb/+archive/ppa 를 통해서 1.1 을 한번 깔아는 봤는데.. hgview 등 다른 패키지들이랑 충돌이 있는듯 해서 바로 다시 원복했다. 뭐 mercurial 은 아직 혼자만 쓰고 회사에선 svn 을 쓰니 굳이 미리 삽질을 할필요야 없지.

2008년 5월 13일 화요일

서브버전으로 관리하던 emacs 설정및 개인소스파일들을 mercurial 로 전환

사용자 삽입 이미지


2004년 8월 30일에 처음으로 emacs 설정파일들을 서브버전으로 관리하기 시작을 했고 오늘까지 잘 써오다가 mercurial 을 쓰는쪽으로 전환을 했다.

서브버전을 쓸경우 중앙서버가 필요해서 이 중앙서버를 끈다던가 다른 OS 로 리부팅을 한다던가 장비자체를 바꾼다던가 등등의 작업을 할때 상당히 성가셨다. 사실 불편할 정도는 아니었는데.. 거의 충동적으로 mercurial 로 바꾸게 됐다.

전에도 해봤지만 svn 에서 hg 로 리파지토리를 가져오는것은 hgsvn 을 통해서. 속도가 느려서 짜증이 났지만 커밋로그까지 잘 임포팅이 되더라. 리비전마다 태깅을 달아주는데 이건 좀 과잉친절인듯. 귀찮으니 지우지는 않았다. 아.. 하기야 svn 에서는 리비전넘버가 중요하긴 하지. 반드시 필요한 작업이 맞군.

현재 사무실에서 우분투를 메인으로 쓰고 있으므로 리파지토리를 적당히 ~/emacs 에 박아두로 다른 PC (사무실에서 쓰는 세컨드 윈도 머신과 집에서 쓰는 윈도 머신) 에서 ssh 를 통해 클론을 했다.

hg clone ssh://yoonkn@foo.bar.com//home/yoonkn/emacs


좃스팟에 적을때는 plink 에 옵션으로 암호까지 같이 주도록 했는데 plink 가 똘똘해서 필요한경우 암호를 GUI 로도 물어보더라. 굳이 agent 돌릴것도 없이 그냥 위처럼 해주고 필요할때 암호만 쳐주자.

이제 메인서버 역할을 하는 사무실의 우분투 머신이 죽더라도 내 설정파일들의 버전관리가 가능해졌다. 우왕ㅋ굳ㅋ

TortoiseHg 0.4 rc2

emacs 설정 및 개인적으로 관리하는 소스들을 subversion 에서 mercurial 로 완전히 옮기고 집에와서 clone 을 하기전에 집에 깔려있던 mercurial 이 좀 오래된지라 새버전으로 올려봤다. 사무실에서 쓰고있는 버전과 달리 tortoise hg 를 설치했다. 이놈은 예전에도 한번 깔았다가 한글문제가 있어서 지운기억이 나는데.. 오늘 깔아보니 적어도 hgtk log 로 볼때는 한글에 별 문제가 없더라. 단 이 UI 상태에서 태깅을 하거나 등등을 위해 한글을 입력하는 경우 인코딩에러가 나는것으로 봐서 아직 인코딩 처리가 완전하지는 않은 상태.

콘솔상에서 주로 작업하는지라 탐색기 연동은 귀찮기만 한기능이라 FAQ 에서 나온대로 꺼버렸다.

역시 콘솔상에서 작업할때 리눅스와 유사한 환경을 유지하기 위해서 hg view 로 hgtk log 를 실행하도록 수정했다. mercurial.ini 에서 아래 내용을 변경&수정 했고
[extensions]
hgext.hgk =

[hgk]
path="C:\Program Files\TortoiseHg\hgk.cmd"
hgk.cmd 파일을 요렇게 추가했다.
@hgtk log

좃스팟에도 적은글