• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
소셜인어스 SVN 도움말
 

소셜인어스 SVN 도움말

on

  • 2,213 views

소셜인어스 사내 공유 목적으로 제작한 자료입니다. 혹시라도 도움이 되시는 분들이 계실까 하여 공유합니다.

소셜인어스 사내 공유 목적으로 제작한 자료입니다. 혹시라도 도움이 되시는 분들이 계실까 하여 공유합니다.

Statistics

Views

Total Views
2,213
Views on SlideShare
1,658
Embed Views
555

Actions

Likes
8
Downloads
45
Comments
0

8 Embeds 555

http://resoneit.blogspot.kr 340
http://resoneit.blogspot.com 103
http://socialinus.blogspot.kr 73
http://socialinus.blogspot.com 26
http://50.10.175.132 8
http://resoneit.blogspot.jp 2
https://twitter.com 2
http://www.blogger.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    소셜인어스 SVN 도움말 소셜인어스 SVN 도움말 Presentation Transcript

    • 소셜인어스는 버전관리툴로 SVN을 이용해요 개발하다가 실수로 파일을 지워버리면? 팀 작업을 하다가 다른 사람 작업물을 덮어써버리면? 걱정 없어요! 버전관리툴 SVN이 있으니까요! svn이 더 궁금하면? 클릭
    • 맥용 SVN 프로그램에는 이런 것들이 있어요 스마트SVN SmartSVN ☛ 쓸만해요 SC툴바버튼 SCToolbarButton 코너스톤 cornerstone ☛ 한글 오류 때문에 골치가 아파요 예쁘긴 진짜 예쁜데... 버전스 versions
    • 이제 SVN에 대해서 알아볼까요?이건 여러분의 컴퓨터! 이건 SVN 서버 컴퓨터!
    • 처음에는 여러분의 컴퓨터에 아무것도 없어요! 정말이에요! 여러분의 컴퓨터! SVN 서버 컴퓨터! a.txt b.txt c.txt d.txt
    • 제일 먼저 할 것은 ‘체크아웃(checkout)’ 서버로부터 파일들을 가져와요 여러분의 컴퓨터! SVN 서버 컴퓨터! 체크아웃 파일들을 a.txt b.txt c.txt d.txt ➟ a.txt b.txt c.txt d.txt 똑같이내려받았어요
    • 이제 파일들을 마음대로 할 수 있어요! 여러분의 컴퓨터! SVN 서버 컴퓨터!이름 변경! ☞ jay.txt a.txt 삭제! ☞ b.txt b.txt내용 수정! ☞ c.txt c.txt d.txt d.txt파일 추가! ☞ e.txt 그런데 SVN 서버는 아직 바뀐게 없네요
    • 이제 작업이 끝났어요! ‘커밋(commit)’ 합니다! 내 파일들을 서버로 보내요 여러분의 컴퓨터! SVN 서버 컴퓨터! 커밋 jay.txt c.txt d.txt e.txt ➟ jay.txt c.txt d.txt e.txt 드디어 내 컴퓨터와 서버가 똑같아졌어요
    • 앗, 그런데 갑자기 누군가가 나타났어요! 그리고 자기가 바꾼 파일을 서버로 커밋했어요!여러분의 컴퓨터! jay.txt SVN 서버 컴퓨터! c.txt d.txt e.txt jay.txt c.txtJuno의 컴퓨터! 커밋 snsd.txt ➟ jay.txt e.txt c.txt snsd.txt e.txt
    • 어떡하죠? 서로 또 달라졌어요.여러분의 컴퓨터! SVN 서버 컴퓨터! jay.txt jay.txt c.txt c.txt d.txt snsd.txt e.txt e.txt
    • 최신 상태를 유지하려면 ‘업데이트(update)’ 체크아웃은 처음에만, 업데이트는 수시로! 여러분의 컴퓨터! SVN 서버 컴퓨터! 업데이트다시 서버와 jay.txt c.txt snsd.txt e.txt ➟ jay.txt c.txt snsd.txt e.txt똑같아졌어요
    • 아, 그런데 뭔가 수정할 게 생겼어요! 여러분의 컴퓨터! SVN 서버 컴퓨터! jay.txt jay.txt 소녀시대가9명이라고 잘못 c.txt c.txt 적혀 있어요. snsd.txt snsd.txt 8명으로 정정 e.txt e.txt 합니다.
    • 수정한걸 취소할땐 ‘되돌리기(revert)’ 여러분의 컴퓨터! SVN 서버 컴퓨터! 아, 효연을 jay.txt jay.txt 빠뜨렸어요. c.txt c.txt다시 돌려놔야 겠어요. snsd.txt snsd.txt e.txt e.txt 서버와는 상관없이 내 컴퓨터에서 일어나는 일들이랍니다.
    • 그런데 누가 저 파일을 바꾼거야? 여러분의 컴퓨터! SVN 서버 컴퓨터! 이 파일은 jay.txt jay.txt 지금까지 c.txt c.txt누가 수정해왔을까요? snsd.txt snsd.txt e.txt e.txt
    • 수정 기록 훑어보기! ‘로그(log)’ r1977 | reid | 2012년 6월 20일 오전 11시 43분 10초 | 1번째 줄 /trunk/test_repo/jay.txt로 이름 변경 r1974 | reid | 2012년 6월 19일 오후 4시 12분 56초 | 1번째 줄여러분의 컴퓨터! 뭔가 내용 작성 r1970 | jay | 2012년 6월 18일 6시 52분 15초 | 1 번째 줄 /trunk/test_repo/a.txt 생성 맨 앞 r1977은 리비전이라고 해요 jay.txt 수정 사항이 있을 때 마다 1씩 증가한답니다. c.txt 누가 언제 무엇을 어떻게 snsd.txt 바꾸었는지가 e.txt 기록되어 있어요!
    • 어딜 어떻게? ‘책임묻기ㅋ(blame)’ 1970 jay 안녕하세요? 저는 jay예요.여러분의 컴퓨터! 1970 jay 오늘도 즐거운 하루 보내고 계신가요? 1974 reid 힘들고 지칠때면 레고로 원기회복하세요. 1970 jay 그럼 안녕히 jay.txt c.txt 파일의 snsd.txt 한줄한줄 누가 e.txt 언제 작성한건지 알려줍니다. ㅋ
    • 자, 지금까지는 기초반 공부였구요. 이 정도만 알아도 별 문제 없이 잘 쓸 수 있답니다. 단, 프로그래머만 빼구요. :( 이제 고급반 들어갑니다!
    • 휴와 잭이 멋진 게임을 만들고 있어요! 휴 잭 좋아요! 좋은 아이디어가 그런데, 혹시라도 떠올랐어요! 버그가 있는 코드를그런데 구현하는데 커밋하시면시간이 좀 걸릴 것 곤란해요... 같아요!
    • 휴는 깊은 고민에 빠졌어요. 아, 이럴수가... 내가 만약 작은 스펙타클한 버그라도 만들어내면 아이디어인데 잭의 작업에마음 놓고 만들 수 지장을 줄텐데... 없다니... 아, 어떡하지
    • 맞다! 게보... ‘브랜치(branch)’
    • 브랜치가 뭔가요? 브랜치(branch)몸통에서 뻗어나온 곁가지를 말해요. 트렁크(trunk) 듬직한 나무 몸통이에요.
    • 이 권장하는SVN 디렉토리 구조도 나무와 비슷해요 모두가 공유하는 작업공간 Project trunk branches tags 임시로 격리된 작업공간 이건 조금 있다가 설명할게요
    • 휴가 브랜치를 만들고 있어요 브랜치(branch) 명령을 사용해요Project trunk branches Hugh’s Brilliant Idea tags trunk의 파일들을 branches 디렉토리 아래 나만의 작업 공간으로 복사합니다.
    • 휴와 잭이 만드는 게임 디렉토리의 구조예요 잭이 열심히 달리고 있어요 Project trunk branches Hugh’s Brilliant Idea tags 휴가 편안하게 작업하고 있어요
    • 드디어 휴의 아이디어가 구현되었어요! 레드불 먼저 DOH!!!!! 한잔 하시고... 이제 일주일동안 작업이 드디어 휴의 소스와 끝났어요! 제 소스를 비교하며이제 어떡하나요? 카피&페이스트를 하도록 해요 그럴리가 없겠죠?
    • 휴의 작업을 ‘병합(merge)‘합니다! 병합(merge) 명령을 사용해요Project trunk branches Hugh’s Brilliant Idea tags 휴가 작업한 branch의 파일들이 trunk로 병합됩니다.
    • 뜨어! 휴와 잭의 작업이 충돌했어요! 아, sistar.hpp 설마, 휴도 그 파일파일 1514번째줄을 수정하신거예요? 수정하셨어요? 하필 왜 1514번째줄을 수정하신거예요.
    • 스스로 충돌을 해결해야 합니다.SVN 병합(merge)은 두 작업을 자연스럽게 합쳐줍니다.하지만, 하나의 파일 속 동일한 위치를 변경해버리면,컴퓨터의 슈퍼 할아버지가 오더라도 자동으로 해결할 수가 없습니다. SmartSVN의 3-way merge tool 입니다. 이런 도구를 이용하면 병합이 쉬워집니다.
    • 병합 과정을 다시 한번 순서대로 살펴볼까요? 생각보다 복잡해요. 2) 업데이트 여러분의 trunk svn서버의 trunk 4) 커밋 3) 병합 여러분의 branch svn서버의 branch 1) 커밋• 2)가 끝나면, 내 컴퓨터와 서버는 완전히 똑같아집니다.• 병합은 내 컴퓨터에서 처리됩니다. 모든 이슈가 해결되면 그때 서버에 반영합니다.
    • 브랜치 작업의 장점은 협업에서 두드러집니다. Yubin Juno 작업을 branch에서 검증하고 trunk로 커밋한다면 trunk가 문제가 생기기는 Hugh Jay 쉽지 않겠죠? TRUNK BRANCHES Jack Joy Willy 소셜인어스는 정신없이 개발 중!
    • 마일스톤이 완료되었습니다! Juno Jay TRUNK 이 빌드가 서비스를 시작했는데 한참 후, 이 빌드에서 버그가 발생한다면 어떡하죠? Joy Willy 빌드를 저장해두지 않으면 완벽하게 수정 할 방법이 없어요. 목표가 달성되면 완료 순간의 빌드를 저장하고 유지해야 합니다.
    • 이때 사용하는 것이 ‘태그(tag)‘입니다. 태그는 수정하지 않아요! Project trunk branches tags 120720_3rd_milestone 모든 개발자들이 열정을 쏟아부은 trunk를 태깅(tagging) 합니다
    • 설명은 여기까지입니다... 쉬우면서도 어려워요. 하지만 중요하죠! 작업의 버전 관리는 말로 다 할 수 없을만큼 중요해요. 프로젝트의 시작과 끝, 모든 역사가 다 저장되기 때문이에요.그리고 SVN의 기본적인 사용법은 굉장히 쉽지만,조금만 더 잘 사용하려면 무척 어려워진답니다.게다가 올바르게 사용하지 않으면 엉뚱한 결과를 만들어내기도 해요. 그래서 SVN의 정확한 사용법을 아는게 매우 중요해요! 항상 아기 강아지처럼 신중하게 다루어주세요.