Company Logo 버전관리와 WinCVS

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
아이튠즈 계정 생성. 1. 인터넷을 통해 설치한 아이튠즈를 실행 한 후 그림의 순서대로 선택을 합니다. 1 2.
난이도 : 초급 제1장 앱 인벤터 소개 및 준비.
Windows XP SP2 문제해결 Windows XP SP2를 설치한 회원께서는 Pop-up차단 기능과 ActiveX 설치의 어려움 발생 아래의 예는 안철수 바이러스 설치 시 문제점을 해결 하는 방법의 설명. 1. ActiveX 컨트롤 설치 ① 주소 표시줄 아래의 '이.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Image & Video processing
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
㈜디아이씨 SSLVPN 협력사 접속방법 2017년 4월.
윤 홍 란 다이알로그(대화상자) 윤 홍 란
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
CUDA Setting : Install & Compile
Outlook Express 메일 백업 및 복원가이드
J2ME Install 부산대학교 인공지능 연구실.
네트워크 프로그래밍 및 실습.
1 최초 한번만 실행 Git 초기화 git init git config user.name “StudentNum”
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
NCS 학사운영 시스템 Guide.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Communication and Information Systems Lab. 황재철
1. C++ 시작하기.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
WinCE Device Driver 실습 #2
Cross Compiler 설치.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
Microsoft Office Outlook
Git 사용법 GitHub 가입 GitHub 새 저장소 만들기 Git 설치 로컬 저장소 만들기 로컬 저장소와 원격 저장소 연결
Slice&link.
이메일 자동 포워딩 방법 (Outlook/OWA)
개발 환경 세팅.
영상처리 실습 인공지능연구실.
홍익대학교 메일 시스템 구축 그룹웨어 메일 이전 하기.
정보 동영상의 가공 YoungjinMedia.
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Eclipse CDT에서 프로젝트를 Export 하고 Import 하는 방법
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
Git 사용하기 Git 소개 Git 사용 환경 GitHub 가입 및 원격 저장소 만들기 Git 설치 Git 최초 설정
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
7주차 실습 FPGA 보드 사용법.
PMIS 서버 설정 환경설정 작성자 : 배경환.
빌드 성공.
Python 및 OpenCV 설치.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
05. General Linear List – Homework
StyleCop 소개 SGS Framework 개발 팀.
Tensorboard in Windows
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
1. 인터넷 보안 옵션 레지스트리 등록 Config Setup 클릭.
워드프로세서 스프레드시트 문서 관리 인터넷 활용
Git을 이용한 버전 관리 - Branch 실습
숙제 작성 및 제출 과정 김진하 2008/03/14.
Docker Study 6~7.
Platform Builder 사용법.
J2SE 설치 부산대학교 인공지능 연구실.
Presentation transcript:

Company Logo 버전관리와 WinCVS

HAJE in KAIST CVS? Concurrent Versions System 소프트웨어 프로젝트의 버전 관리를 도와준다. RCS 를 기반으로 작성되어 있음 RCS 는 파일 단위의 버전 관리를 해줌 대표적인 사용 예 : WikiWiki

HAJE in KAIST 참고 – 소프트웨어 프로젝트 관리의 3 요 소 Unit test Build automation Version Control

HAJE in KAIST 버전 관리란 ? 버전이 뭔지는 알죠 ? 어떤 파일이 언제 어떻게 누구에 의해 변경 / 추가 되 었는지를 알게 해준다. Branch, Milestone 관리에 용이. 숙련된 개발자가 경험에 의존하던 프로젝트 자원 관 리를 자동화 해줌.

HAJE in KAIST 버전 관리의 장점 (1) 실수에 대한 복구가 쉬움 버전 관리 없는 프로젝트는 Backspace 키가 없는 키보드와 같다 팀원들의 co-work 를 돕는다. 비단 프로그래머 뿐만 아니더라도.. 프로젝트의 역사를 통째로 남길 수 있다. Ex: 2003 년 5 월 17 일에 release 한 제품에 버그 가 보고되었는데, 2002 년 12 월 11 일에는 분명히 이 버그가 없었다. 이 두 버전간의 차이를 분석해 버그를 수정하였다.

HAJE in KAIST 버전 관리의 장점 (2) 프로젝트의 “ 문맥 (context)” 를 쉽게 파악할 수 있게 해준다. 나쁜 팀 프로젝트 습관 파일의 맨 앞에 history log 남기기 // modified by adaline 따위 붙이기 수정할 때 옛날 부분 주석처리 해서 남기기 등 버전관리 소프트웨어를 사용하면 이런 나쁜 습관 을 없앨 수 있다. 소스 파일에는 순수한 코드와 핵심적인 주석만 있어야 한다.

HAJE in KAIST 구조 CVS 저장소 (Repository) 개발자 1 개발자 2 개발자 3

HAJE in KAIST Repository 프로젝트의 모든 버전들의 원본이 담겨 있는 핵심 장 소이다. 자신의 컴퓨터 (local) 일 수도 있고, 외부 컴퓨터로 지 정할 수도 있음. 하제의 경우 /home/cvs 많은 오픈 소스 프로젝트들이 CVS 를 통해 배포를 하 고 있음

HAJE in KAIST Project 어떤 소프트웨어를 이루는 자원 (= 파일 ) 의 집합 한 저장소는 여러 프로젝트를 담고 있을 수 있음 여러 파일과 폴더로 이루어짐. 소스 코드 각종 리소스나 도큐먼트 테스트 데이터 등

HAJE in KAIST 시나리오 1 경돈이는 모 게임 회사에 취직해 프로젝트 “α” 제작 에 참여하게 되었다. “α” 는 CVS 로 관리되고 있는 프로젝트이다. 경돈이는 ‘check out’ 을 하여 저장소 의 프로젝트 파일들을 자신의 컴퓨터로 전송하였다. cvs –d … checkout alpha Check out 이란 저장소의 파일을 자신의 컴퓨터로 통째로 가져오는 것을 말한다. cf. VSS 의 check out

HAJE in KAIST 시나리오 2 경돈이가 아침에 출근을 해서, 그 동안 다른 사람들 이 그 동안 수정한 사항들을 자기 컴퓨터에 반영하고 싶어한다. cvs –d … update Update 란 자신 컴퓨터에 있는 파일들을 저장소의 최 신 파일들로 갱신하는 것을 말한다.

HAJE in KAIST 시나리오 3 경돈이가 화랑의 발차기를 현재보다 2 배 느리게 하는 것이 좋겠다고 생각하여 hwoarang.cpp 파일을 수 정한 후, “commit” 을 하여 저장소의 파일을 갱신하 였다. 다른 팀원들이 update 를 하면 이 수정한 내용 이 갱신될 것이다 cvs –d … commit hwoarang.cpp Commit 이란 저장소의 최신 버전을 자신의 파일로 갱신하는 것을 말한다.

HAJE in KAIST Commit 할 때의 주의점 빌드가 깨지지 않게 할지어다 항상 충분한 테스트를 거칠지어다 Commit 할 때는 메시지를 남기도록 되어 있다. 일종의 log 역할을 함 무엇을 했는지만 적지 말고 왜 했는지 적으시오 캐릭터 구조체에 가속도 필드를 추가 (x) 미끄러지는 효과가 필요했음 (o)

HAJE in KAIST Hello.cpp Revision 이란 각 파일의 버전을 말한다. 시작과 동시에 모든 파일은 1.1 이라는 버전을 갖는다. void main() { printf(“hello world\n”); }

HAJE in KAIST Merge (1/3) 만약 두 사람이 같은 파일을 동시에 고치면 ? 경돈의 경우 #include void main() { printf(“hello world\n”); } 세훈의 경우 int main() { printf(“hello world\n”); return 0; }

HAJE in KAIST Merge (2/3) 1. 경돈이 자신의 수정본을 commit 함 1. 성공. 저장소의 버전은 1.2 가 됨. 2. 세훈이 자신의 수정본을 commit 함 1. 실패. 저장소의 버전은 1.2 인데 자신이 편집한 파일은 1.1 이므로 Up-to-date check failure 3. 세훈이 update 를 시도함 1. 성공적으로 Merge 됨. 4. 세훈이 Merge 된 파일에 이상이 없음을 확인하고 commit 함 1. 성공. 저장소의 버전은 1.3 이 됨.

HAJE in KAIST Merge (3/3) CVS 는 optimistic lock scheme Merge 된 파일 #include int main() { printf(“hello world\n”); return 0; }

HAJE in KAIST Confliction 이 일어나는 경우 <<<<<<< hello.cpp #include ======= #include >>>>>>> 1.2 int main() { printf(“hello world\n”); return 0; } 해결책 : 전화를 한다

HAJE in KAIST WinCVS cvs 커맨드는 다양하고 복잡. WinCVS 는 GUI frontend 를 통해 CVS 를 윈도우에 서 쉽게 사용할 수 있게 해주는 프로그램이다. 자매품 : MacCVS, gCVS

HAJE in KAIST 설치 (1/2)

HAJE in KAIST 설치 (2/2) WinCVS 설치가 끝나면 CVSNT 를 설치할 것이냐고 물어봄  반드시 설치해야 함 ! WinCVS 를 제대로 사용하기 위해서는 Python 2.1 이상의 버전을 설치해야 한다

HAJE in KAIST 실행화면

HAJE in KAIST 새 프로젝트 만들기 새 프로젝트를 처음으로 만들 때 한번만 해준다. 1. 작업중이던 프로젝트 메인 폴더 설정 2. 메뉴의 Remote -> Import module 1. CVSROOT 설정 2. 확인 버튼 누르면 끝 !

HAJE in KAIST CVSROOT ??? 저장소의 위치를 지정함

HAJE in KAIST Check out 기존에 돌아가고 있는 프로젝트에 참여하고 싶을 때. 메뉴의 Remote -> Check module

HAJE in KAIST ex> Noah2k

HAJE in KAIST 히스토리 보기 파일을 오른쪽 버튼으로 클릭하고 Graph 를 선택해 보자

HAJE in KAIST Update update 하고자 하는 디렉토리 ( 혹은 개별 파일 ) 에서 오른쪽 버튼을 누르고 Update 선택

HAJE in KAIST Commit (1/2) 파일 수정 시 자동으로 인식해서 다음과 같이 나온다

HAJE in KAIST Commit (2/2) 수정한 파일에서 오른쪽 버튼을 누르고 Commit 을 선택한다 폴더에서 하면 변경된 파일들이 모두 commit 됨 Revision 이 올라감. (1.1 -> 1.2)

HAJE in KAIST 새 파일 추가 (1/2) 새로운 파일이 생기면 다음과 같이 나온다

HAJE in KAIST 새 파일 추가 (2/2) 파일을 선택하고 메뉴에서 Modify  Add 선택

HAJE in KAIST 마치며 (1/3) 사용하는 IDE 가 버전 관리를 지원하면 적극 사용하 자 (Visual Studio, Eclipse 등 ) Eclipse and CVS live together in perfect harmony

HAJE in KAIST 마치며 (2/3) Branch, Tag 와 같은 멋진 기능이 많으니 必히 공부 해 보자. Team project 를 하게 되는 경우, 혹은 혼자 하는 project 라도 사용하면 매우 편리하다. 프로그램 소스코드 뿐만 아니라, 중요한 문서 등을 관리할 때에도 사용하면 좋다. 동아리 방에 “ 실용주의 프로그래머를 위한 버전관리 using CVS” 책을 참고하자

HAJE in KAIST 마치며 (3/3) 참고할만한 자료 “ 실용주의 프로그래머를 위한 버전관리 using CVS” 동방에 있음 -_ -; 사용