01. SVN 서버
1) 형상관리서버(협업툴)란?
- 소스, 버전등 변경 관리를 하기 위한 서버
- 클라이언트에서는 eclipse를 이용해 작업
SVN서버 예시
- CVS , SubVersion(SVN) , Git 등
- CVS : 거의 사용 안함
- SubVersion(SVN) (대형프로그램 만드는 회사) : 우리가 이용할 예정 - 강사님이 관리해주심 - semi 프로젝트, final 프로젝트
- Git (중소형프로그램 만드는 회사) : 깃허브에 접속해 프로젝트를 공유해서 사용함
이클립스는 CVS or Git 플러그인은 설치되어 있으나 SubVersion은 플러그인을 따로 설치해야 사용 가능
2) repertory(저장소) 역할
IMPORT
- 업로드처리, 한명만 하면 됨, 프로젝트를 공유해줌
- 클라이언트 ----> 서버
- (팀장이 만든 프로젝트를 최초에 한번 전송)
CHECKOUT
- 팀원들은 공유된 프로젝트를 다운받아 자신의 프로젝트로 만듦
- 클라이언트 <---- 서버
- (서버에 존재하는 프로젝트를 팀원이 다운로드 - 다른 클라이언트에서 작업하고자 할 경우 : 한번만 전송)
COMMIT
- 클라이언트 ----> 서버
- (작업한 파일을 서버로 전송 : 자주 실행) - 내꺼 업로드
- 주의) UPDATE 후 COMMIT 하길 권장
UPDATE
- 클라이언트 <---- 서버
- (서버에 변경된 파일을 클라이언트로 전송 : 자주 실행) - 다른사람꺼 다운로드
02. 형상관리서버 이용방법
step1. Visual SVN Server 서버 설치
- 형상관리서버는 강사님이 이미 설치해둠, 사용자가 접근할 수 있는 권한도 제공해주고 있으니 우리는 접근만 하면 됨!
- 강사님 서버 이용할 것임!
- 강사님 서버에 접속하여 사용할 것임
① https://www.visualsvn.com/server/download/ 에서 서버 프로그램 다운로드 및 설치
② user 생성 및 group 생성 후 user를 group에 포함
③ repertory를 생성하여 그룹(사용자)에 권한 부여
④ URL를 이용해 확인 : https://www.itwill.xyz/svn/XXX (XXX - 레파지토리명)
//ex. <https://www.itwill.xyz/svn/semi_sample> : sample프로젝트
<https://www.itwill.xyz/svn/semi_one> : 🔥1조!!!!우리조🔥
<https://www.itwill.xyz/svn/semi_two>
<https://www.itwill.xyz/svn/semi_three>
<https://www.itwill.xyz/svn/semi_four>
🔥<1조>🔥
사용자이름 : one-1 , "one-2" , one-3 , one-4 , one-5 , one-6
비밀번호 : one-1 , "one-2" , one-3 , one-4 , one-5 , one-6
step2. 이클립스에 SVN 접속 플러그인 설치
- 이클립스를 통해 프로젝트를 공유해서 쓰는 방법을 배워보자!
- 브라우저에서는 접속이 되는지만 확인한 것일 뿐, 프로젝트를 공유해서 쓸 것이고, 프로젝트는 이클립스를 이용해 만들 것이니 이클립스에 SVN에 접속할 수 있는 서버를 설치해야함
① Help - Eclipse Marketplace 클릭
② [Find] : svn 검색 >> [Subversive - SVN Team Provider 4.0.5] >> Install
③ [Subversive - SVN Team Provider 4.0.5] 설치 후 Eclipse 재실행
환경설정
④ Window >> Preferences >> Version Control(Team)(협업프로그램과 관련된 버전컨트롤 - 이미 Git은 따로 플러그인설치하지 않아도 존재) >> SVN >> [Get Connectors] >> [SVN Kit 1.8.14] 선택 >> Finish
⑤ 강제(수동 설치) : SVN 컨넥터를 수동으로 설치하는 법
[강사님 svn url로..] <https://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/>
⑥ [SVN Kit 1.8.14] Connector 설치 후 이클립스 재실행
⑦ 확인작업 : Window >> Preferences >> Version Control(Team) >> SVN >> SVN Connector 확인
step3. 이클립스를 이용한 SVN 사용 방법
🖤 IMPORT 작업
- 프로젝트를 서버에 전송하는 작업 (한번만 실행) - 팀장이 실행
- 프로젝트 생성(메인페이지 작성) >> 프로젝트 >> 오른쪽 버튼 >> Team >> Share Project >> SVN 선택 >> URL, 계정, 암호 입력 >> finish >> import(서버에 파일 전송) >> Visual SVN Server 또는 웹브라우저에서 확인
- revision number : 파일에 붙은 숫자 - commit할 때 마다 숫자가 증가
- 전송하고자 하는 디렉토리에 파일이 하나도 없다면 전송되지 않는다.
- 미전송 파일을 계속 업로드 하지 않도록 설정
- window >> show view >> Navigator >> ?로 설정된 폴더 및 파일 >> Team >> add yo SVN: ignore 처리
🖤 CHEKOUT 작업
- IMPORT된 프로젝트를 클라이언트로 전송(클라이언트가 틀린 경우에만 사용) - 팀원만 적용
- New >> Other >> SVN >> Project From SVN >> Next >> 인증 >> URL : Browse 클릭 >> 프로젝트의 trunk 선택 >> finish >> 프로젝트 선택 설정 >> finish
- 이런 화면이 나오면 접속 잘 되는지 확인 된 것
🖤 COMMIT 작업
- 프로젝트에서 파일을 변경한 후 서버로 파일을 전송
- 변경된 파일(앞에 > 표시가 됨) >> 오른쪽 버튼 >> Team >> Commit 선택
- 🍯단축키 : ctrl + alt + c
- 🍒commit 할 때 공유하지 않아도 될 파일들 설정하는 법
- 🍒레파지토리 관리할 수 있는 뷰 설정하는 법
🖤 UPDATE 작업
- 서버에 저장된 파일을 전송 받는 작업 (프로그램 변경 전에 한 번 실행한 후 사용하는 것이 좋응)
- 프로젝트 >> 오른쪽 버튼 >> Team >> Update 선택
- 🍯단축키 : ctrl + alt + u
03. 🔥Commit 시 - [상위 revision number]가 존재하는 경우
- Commit 에러 발생
- 같은 파일을 동시에 건들면 안된다!!!!! - 커밋 시 꼬여버림ㅠ
- (1번 꼬인 것은 가능하지만, 2~3번 꼬인것은 프로젝트 삭제 후 checkout 부터 하는 것이 좋음..)
- 하기 전 반드시 백업부터 : ctrl + c - ctrl + v
[해결1]
- Window >> Show View >> Other >> Team >> Synchronize View 선택 >> 오른쪽 버튼 >> Synchronize 선택 >>
- 문제가 되는 파일이 존재 >> 오른쪽 버튼 >> Override and Commit - 내꺼로 커밋! 또는 Override and Update - 다른사람꺼로 커밋! 선택
[해결2]
- 문제가 되는 파일이 존재 >> 더블 클릭 >> 화면에서 프로그램 비교후 파일 내용 변경 >> Make as Merged >> commit 가능(나중에 수정 가능) >> pakeage explorer에서 update한 경우 동일한 라인의 데이타를 변경한 경우 충돌 발생 >> 문제 파일 수정 후 오른쪽 버튼
incomming(update 목록) 또는 outgoing(commit 목록) 확인 : Synchronize View에서 선택하여 전체 update 또는 commit 가능
04. SVN 영역의 개념
- trunk
- 소스의 주 개발 작업을 진행하는 폴더
- branches
- 소스의 실험적인 작업을 진행하는 폴더
- 소스의 현재 버전을 유지보수 하고, 현재 버전을 기반으로 차기 버전을 개발할 경우 이 폴더 이용
- tags
- 현재 릴리즈된 소스를 관리하기 쉽게 따로 보관하는데 사용
- 개발을 위한 것이 아니라 보관을 위한 것이기 때문에 export만 해야 한다
- 체크아웃하여 커밋 할 경우 경고 메시지가 출력된다.
다른 작업으로 변환
- 프로젝트 >> 오른쪽 버튼 >> Team >> switch >> URL 또는 revision 변경 후 finish
- 프로젝트 완성하면 프로젝트를 war파일로 저장하여 서버의 webapps에 전송하면 된다.
'git' 카테고리의 다른 글
[git] 6. GIT 브랜치 (git branch, git switch, git log, git merge, git merge -d) (0) | 2024.07.07 |
---|---|
[git] 5. GIT 버전 파일들 비교 (git diff) (0) | 2024.07.07 |
[git] 4. GIT 저장소에 커밋하기 (git status, git add, git commit, git log) (0) | 2024.07.07 |
[git] 3. GIT이 관리하는 파일로 만들기 (git init) (0) | 2024.07.07 |
[git] 2. GIT 환경설정하기 (git config) (0) | 2024.07.07 |