36
Git 마을에 입주하기 @dalinaum [email protected] 2011년 6월 9일 목요일

GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Embed Size (px)

DESCRIPTION

GIt 마을로 이주하기 (Git -> Svn) svn-all-fast-export를 사용합니다.

Citation preview

Page 1: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Git 마을에 입주하기@dalinaum

[email protected]

2011년 6월 9일 목요일

Page 2: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Why?

• Cheap Local Branching

• Everything is Local

• Git is Fast

• Git is Small

• The Staging Area

• Distributed

• Any Workflow

2011년 6월 9일 목요일

Page 3: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Cheap Local Branching!

• http://whygitisbetterthanx.com

2011년 6월 9일 목요일

Page 4: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Everything is Local!

• http://whygitisbetterthanx.com

2011년 6월 9일 목요일

Page 5: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Fast!

• http://whygitisbetterthanx.com

2011년 6월 9일 목요일

Page 6: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Staging Area!

• http://whygitisbetterthanx.com

2011년 6월 9일 목요일

Page 7: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Small!

• http://whygitisbetterthanx.com

2011년 6월 9일 목요일

Page 8: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Any Workflow

• http://whygitisbetterthanx.com

2011년 6월 9일 목요일

Page 9: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

SVN 이주의 어려움?

• 대체 언제되는거에요?

2011년 6월 9일 목요일

Page 10: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

SVN의 전형적인 구조

• 개별적인 디렉토리

2011년 6월 9일 목요일

Page 11: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

SVN의 전형적인 구조?

2011년 6월 9일 목요일

Page 12: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

• 코더 양반 이게 무슨 소리요!!

2011년 6월 9일 목요일

Page 13: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

SVN의 전형적인 구조?

• 오래된 SVN 프로젝트는 어떻게 구성되어 있을지 예상하기 힘듭니다.

2011년 6월 9일 목요일

Page 14: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

깨진 저장소

2011년 6월 9일 목요일

Page 15: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Heavy Storage

2011년 6월 9일 목요일

Page 16: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Git-svn

• Git가 제공하는 이주도구

2011년 6월 9일 목요일

Page 17: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Git-svn is painfully slow!

• git-svn Git가 제공하는 이주 도구

2011년 6월 9일 목요일

Page 18: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Stupid!

2011년 6월 9일 목요일

Page 19: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Exception!

• Broken link, Invalid checksum...

2011년 6월 9일 목요일

Page 20: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

대안?

• 대부분이 Git-svn 기반!!!!

2011년 6월 9일 목요일

Page 21: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

svn-all-fast-export

2011년 6월 9일 목요일

Page 22: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

svn-all-fast-export

• KDE의 GIT이주를 위해 Thoas Zander가 만든 도구

Thomas Zander (KDE)

2011년 6월 9일 목요일

Page 23: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

장점

• 더 빠릅니다.

• 복잡한 요구사항을 만족합니다.

• 예외 처리에 안정적입니다.

2011년 6월 9일 목요일

Page 24: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

단점

2011년 6월 9일 목요일

Page 25: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

어렵습니다.

• 룰을 작성해야 하는데 영어로 된 글조차 별로 없습니다.

2011년 6월 9일 목요일

Page 26: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

한번에 이주합시다.

• 필살기라고 생각합시다.

2011년 6월 9일 목요일

Page 27: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

빌드

• Ubuntu에 있는 도구가 버전이 낮습니다.

2011년 6월 9일 목요일

Page 28: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

필요한 패키지

• $ sudo apt-get install git-core libsvn-dev qt4-dev-tools libqt4-scripttools qt4-designer ligqt4-gui libqt4-designer qt4-qmake

2011년 6월 9일 목요일

Page 29: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

다운과 빌드

• git clone git://gitorious.org/svn2git/svn2git.git

• cd svn2git

• qmake

• make -j4

2011년 6월 9일 목요일

Page 30: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

SVN을 가져옵시다.

• 한두번은 실패할 수 있습니다.

• 그래서 로컬로 옮겨두고 작업해야 퇴근을 일찍할 수 있습니다.

2011년 6월 9일 목요일

Page 31: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

SVN 가져오기• svnadmin create <디렉토리>

• echo ‘#!/bin/sh’ > <디렉토리>/hooks/pre-revprop-change

• chmod a+x <디렉토리>/pre-revprop-change

• svnsync --username <이름> --password <패스워드> init file://`pwd`/<디렉토리> <svn 저장소>

• svnsync sync file://`pwd`/<디렉토리>

2011년 6월 9일 목요일

Page 32: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

룰을 만듭시다.

• create로 저장소를 만듭니다.

• match로 원하는 디렉토리를 설정합니다.

• 예외 처리를 위해 match /를 삽입합니다.

2011년 6월 9일 목요일

Page 33: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

옮깁시다.

• svn-all-fast-export --rules <룰파일> <svn디렉토리>

2011년 6월 9일 목요일

Page 34: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

참고

• kde의 이주를 위해 사용했던 rule들이 공개되어 있습니다. (아주 많습니다.)

• http://gitorious.org/svn2git/kde-ruleset

2011년 6월 9일 목요일

Page 35: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Q&#0A

2011년 6월 9일 목요일

Page 36: GIt 마을로 이주하기 (Git -> Svn, svn-all-fast-export)

Nil.

2011년 6월 9일 목요일