달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2017. 2. 23. 14:35

svn 누락된 파일 add하기 sbin2017. 2. 23. 14:35

command base로 SVN을 운용하다 보면, 분명 나는 모든 추가파일을 add했다고 생각했는데 누락된 파일이 생기는 경우가 있다. 특히 add해야 하는 file들이 여기저기 산개해 있는 경우라면 일일이 찾기도 쉽지 않다. 이 때 기본 명령으로 많이 사용하는 것이 status (svn st)인데, 이를 응용하여 일괄 Add하는 방법으로,


 svn st | grep '^?' | sed 's/^? *//' | xargs svn add


와 같이 grep/sed/xargs combination으로 간단히 repository에 일괄 등록이 가능하다.


단, Tortoise SVN 이나 다른 IDE의 SVN Plugin 쓰시는 분들은 PASS~

:
Posted by [LunatiC]Simon
2012. 12. 20. 11:10

Eclipse에서 SVN 사용하기(6)- Delete sbin2012. 12. 20. 11:10

이미 Commit된 File을 삭제하고자 하는 경우, 주저없이 delete 후 commit을 진행하면 된다.

 

 

 

 

해당 Delete는 Local Workspace에서만 삭제된 상태이며, SVN Server에서 완전히 삭제하기 위해서는 반드시 Commit을 해야 한다.

 

 

Commit 후 삭제한 파일의 상위 Category의 Update Mark가 모두 사라진 것을 확인할 수 있다.

 

파일이 Local에서만 삭제된 경우 다시 원복하려면 간단히 Revert 기능을 사용하자.

삭제된 파일의 상위 Category에서 Mouse Right Click -> Team -> Revert  선택 후

 

 

SVN Server에서부터 원복하고자 하는 deleted file을 선택하면 바로 원복이 가능하다.

 

실수로 파일이 SVN Server에서 삭제된 경우(Delete 후 Commit한 상태)에는 Merge 기능으로 이전 해당 파일이 삭제되기 전 Revision에서 다시 Add할 수 있으니 당황하지 말고 Merge 기능을 활용하자.

Mouse Right Click -> Team -> Merge를 선택하면,

 

 

상기와 같이 Merge Input에 대한 여러 selection이 존재한다. 구미에 맞게 선택하면 되겠으며, 여기서는 간단히 특정 Revision에서 원복해 보도록 하겠다. "Merge a range of revisions" 선택 Next 클릭하면

 

"Select revisions on next page" 선택 후 Next

 

 

 

해당 file이 삭제되기 전 Revision을 선택하자. 각 Revision 선택 시 하단 Changes에 해당 Revision History List가 표기되는데, 우측  "Show file content changes pane" Icon을 클릭하면 세부 변경 내역에 대한 compare 화면을 볼 수 있다.

Next로 이동하여 해당 Merge process에 대한 특정 Option 정의도 가능하며, Finish로 간단히 복구도 가능하다.

 

 

Merge Result에 대한 Summery가 표기되고, Package Explorer 상에 해당 삭제되었던 파일이 re-add된 상태("+" mark)로 추가되었음을 확인할 수 있다. 주의할 점은, 해당 re-add 파일은 아직 SVN Server에는 commit되지 않은 상태라는 점을 명심하자.

:
Posted by [LunatiC]Simon
2012. 12. 19. 17:59

Eclipse에서 SVN 사용하기(5)- Commit sbin2012. 12. 19. 17:59

Eclipse의 GUI Base에서 사용하는 SVN이다 보니 console에서 사용할 때 보다는 조금 편한 control을 제공한다.

 

Commit에는 Add/Modify의 의미가 같이 포함되어 있다. console command에서는 Add시 반드시 svn add 후 commit을 해야 하겠으나, Subclipse에서는 이러한 action 없이 commit 하나로 수행할 수 있도록 구성되어 있다.

또한 해당 Project 에서 Commit시 선택적인 Add/Modify가 가능하니 참고하자.

 

현재 Revision 상태에서의 Package Explorer를 보면 각 icon 하단에 주황색 mark를 확인할 수 있다.

 

 

해당 Source에서 1개의 Class source를 추가하고, 1개의 modify를 해보자.

 

 

새로운 Class GenType.java를 생성한 후의 Package Explorer의 모습이다. 새로 추가된 GenType.java 파일이 SVN Server에는 존재하지 않는 New file이므로 icon에 "?" mark되며, Revision History 표기 란에는 아무런 정보가 없다.

 

 

이번에는 GameType.java를 수정하여 Local에 저장한 상태이다. 수정된 file에는 "*" mark되며, 해당 project category 모두 "*" mark된다.

이제 SVN Server에 해당 수정/추가 사항들을 적용하기 위해, Mouse Right Click -> Team -> Commit을 선택한다. 해당 Action은 adding/modifying file에서 직접 선택할 수도 있고, 그 상위 Category 혹은 전체 Project에서도 수행할 수 있다. 또한 몇몇 파일만을 Select도 가능하다. 단, Project 전체에서 선택하는 경우 Build시 생성된 Temporary File들도 모두 선택되니, 되도록 commit하고자 하는 항목만을 진행하는 것이 Team working에 혼란을 초래하지 않을 것이다.

 

 

Commit을 선택하면 해당과 같이 commit 가능한 항목이 아래쪽에 출력된다. 이 때, "Show unversioned file"을 uncheck하면 add가 필요한 항목이 제외된다.

 

OK 버튼을 클릭하면 SVN Server에 해당 commit 을 수행하며, 이후 Package Explorer에 commit된 file에 대한 Revision History 및 commit user 정보가 갱신됨을 확인할 수 있다.

 

:
Posted by [LunatiC]Simon
2012. 11. 28. 10:35

Eclipse에서 SVN 사용하기(4)- Check Out sbin2012. 11. 28. 10:35

SVN Server에 Source를 Import 했으므로 이제 SVN과 연동된 source를 workspace에 Checkout하고 control해 보자.

 

Package Explorer 에서 Mouse Right-Click하고 Import를 선택하자 (여기에서의 Import는 외부에서 Eclipse로의 Import이다. SVN Import와 헷갈리지 말자)

 

* 혹은 New -> Project에서 Create할 때에도 아래와 같이 SVN Checkout이 가능하니 참고하자.

 

 

Eclipse의 Import 창 안에 SVN Categore가 추가되어 있는 것을 볼 수 있다.

 

 

Checkout Projects from SVN을 선택하고 Next~

 

 

Subclipse에 기등록된 Repository에서 가져올 수도 있고, 혹은 새로운 Repository를 생성할 수도 있다. 지금은 앞 글에서 Import한 project를 가져오고자 하는 것이므로 "Use existing repository location"에서 해당 Repository를 선택하자.

 

 

 해당 Repository 내의 Remote Folder List를 확인할 수 있다. 앞 글에서 올린 TabNum Project를 땡겨와 보자.

 

 

SVN Server에서 가져온 정보대로 기본 setting되는데, 특정 revision의 Checkout이나 Depth등을 설정할 수 있다.

주의할 점은, Project Name이 최초 Import한 Source의 설정 대로 되어 있는데, 만약 본인의 Package Explorer에 동일 이름의 Project가 있다면 동일 Package에 덮어쓰기 하게 된다는 점이다. 필자는 TabNumber_svn으로 바꿔서 Checkout해 보겠다.

 

 

Project Checkout Location을 설정한다. 그냥 default로 쓰는게 가장 편하다고 보지만, 본인이 편한 대로 선택한다.

 

 

Server에서 Checkout되면 위와 같이 Package Explorer에서 확인할 수 있다. Project 에는 해당 Remote Folder Name이, 각 파일에는 현재 Revision Number 및 Date가 표기되는 것을 확인할 수 있다.

 

:
Posted by [LunatiC]Simon
2012. 11. 28. 10:09

Eclipse에서 SVN 사용하기(3)- Source Import하기 sbin2012. 11. 28. 10:09

이제 Eclipse 내에서 연결된 SVN Repository를 볼 수 있다.

Source Import를 해 보자.

(Clean History 관리를 위해 Import 하기 전, source folder 내에 예전 SVN TAG가 있는지 확인해 보고, 가능하면 삭제하고 Import하자)

 

Source를 올리고자 하는 Remote Folder를 Repository에 하나 생성하고~

 

 

 

Commit Comment를 작성하자. 필자와 같이 1 Repo.에서 여러 개의 source를 관리하는 경우라면 Remote Folder 생성 때의 comment도 필요할 때가 있다.

 

 

Finish button을 누르면 갱신된 Repository에 새로 만든 Remote Folder가 생성된 것을 볼 수 있다. 해당 Folder에서 Mouse Right-Click하여 Import를 선택하자.

 

 

Import Window에 Import하고자 하는 Directory를 선택하고, Comment를 작성해 넣자.

 

 

 

OK button을 누르면 SVN Server로 source가 import된다.

 

 

완료된 후 Refresh하면 아래와 같이 Listup을 확인할 수 있다.

 

:
Posted by [LunatiC]Simon
2012. 11. 26. 23:03

Eclipse에서 SVN 사용하기(2)- SVN Repository 연결 sbin2012. 11. 26. 23:03

Eclipse에 Subclipse가 설치되었으면, 우선 Repository를 연동해 보자.

Windows - Show View - Other... 에서 SVN Category를 열고 SVN Repositories를 선택하면~

 

 

SVN Repositories 항목이 View Window에 추가되는 것을 볼 수 있다.

오른쪽 활성화된 버튼 중에 Add SVN Repository를 click하거나, Mouse Right Click - New - Repository Location을 선택해 보자.

 

 

URL에 사용하고자 하는 SVN Repo URL을 입력하면 ,

 

 

해당과 같이 SVN Credential 입력 화면이 나온다(물론 Anonymous Allowed Repository의 경우 credential이 필요 없겠지만, 필자가 진행하는 모든 Project는 Anonymous Allowed 가 하나도 없다. 본인의 Source 관리 및 Project 관리를 위해서는 진짜 Open Source Project가 아닌 이상 SVN Credential을 설정하고 사용하기를 권장한다). 입력하고 진입해 보면,

 

 

입력한 Repository가 뜨는 것을 볼 수 있다.

SVN Repository를 create해 보면 위의 그림과 같이 branches, tags, trunk가 생성되고, 보통은 trunk에 source를 넣어 사용하는데, 필자는 그게 무진장 싫다. 회사 SVN 내에도 본인이 create할 때는 꼭 sub directory를 추가해서 사용하곤 한다(예를 들면 A사 chipset source를 등록할 때 Main Repo Name을 정하고, 하위에 sub directory를 해당 chip name으로 만들어 구분하는...). Test를 위한 Naver Server에도 여지없이 내 방식대로 설정하겠다.

 

 

우선 해당 Repository에 Mouse Right Click - New - New Remote Folder를 선택하면, 하기와 같은 Create a new remote folder 창이 뜬다.

 

 

Folder Name을 "test1"이라고 설정하고 Next Click.

 

 

해당 folder에 적절한 comment를 달아주자. 아래쪽에 보면 "Configure Comment Templates..."가 있는데, 자주 사용하는 comment를 등록해 놓고 필요할 때 사용할 수 있게 해준다(필자는 그냥 그때 그때 typing하는 스타일이다...)

혹시 Credential Window에서 Save Password 항목을 체크해 놓지 않으면, SVN Server에 접근할 때마다 해당 Credential 입력 창이 뜨니, 불편하다면 Save Password 항목을 체크해 놓고 사용하자.

 

생성한 new remote folder가 Repository Tree에 보이는 것을 확인할 수 있다.

:
Posted by [LunatiC]Simon

현재 Eclipse Juno 버전을 사용중인데, CVS는 기본 지원하면서 SVN은 포함되어 있지 않는 것을 확인하였다.

흠... CVS 사용해 본게 언제더라... 2006년에 잠깐 사용했었나... 하여간 SVN이 더 친숙하고, SVN Server Control도 가능한지라(CVS는 Server 구경도 못해봤다), Eclipse에서도 SVN 으로 사용하고자 한다.

Eclipse를 실행하고~ Windows - Show View - Other... 를 선택하거나 Alt+Shift+Q,Q를 누르면(이상하게 내 Notebook에서는 단축키가 잘 동작하지 않는다)

 

 

와 같이 View List가 뜨는 것을 볼 수 있다. 여섯 번째에 CVS는 있는데, SVN은 보이질 않는다. (혹시 이미 설치되어 있다면, SVN Category가 Team 위에 있을 것이다...)

 

SVN 관련 S/W를 설치해 보자

우선, Help - Install new Software... 를 선택하여

 

 

상기와 같은 창을 볼 수 있다.

Work with: 에 http://subclipse.tigris.org/update_1.8.x 를 입력하고 Add 버튼 클릭~!

 

 

Name에는 적당한 이름을 입력하자. 필자는 SVN for Eclipse라고 넣었으나, 공식 project 명칭은 subclipse라고 한다.

Ok를 누르면,

 

 

상기와 같이 SVN관련 Tool의 category가 보인다. Category를 열어보면 여러 가지 tool이 나오는데, 일단 Select All하고 Next - Finish하여 Install을 진행하자.

(이미 Eclipse에 설치해 버린 관계로 Install 화면은 생략한다)

Install이 완료되면 Eclipse를 다시 시작하고, 다시 Windows - Show View - Other... 에 가면

 

 

해당과 같이 SVN View들을 선택할 수 있다.

 

 

 

 

:
Posted by [LunatiC]Simon
2012. 11. 15. 12:09

Linux에서 하위 폴더 내 SVN tag 삭제 sbin2012. 11. 15. 12:09

Linux Project를 진행하다 보면 간혹 Backbone에서 부터 흘러들어온 SVN Tag가 Target Binary에 포함되는 경우도 있고 신규 SVN Repository에 올리기 위해 기존 Tag를 지워야 하는 경우가 생기는데, 일일이 찾아서 지우는게 여간 귀찮은게 아니다. 또 Makefile에서 자동으로 SVN Tag를 지우게 하고 싶을 때도 있다. 이 경우 하기의 방법으로 삭제하면 만사OK~! Makefile에서 쓰고자 할 때는 2번 방법은 적용이 되지 않으니 되도록 1번 방법을 사용해 보자.

1. find . -name ".svn" | xargs rm rf

2. find. -name ".svn" -prune | awk '{print "rm -rf " $1}' | sh  --> 경우 Makefile에서는 지원안됨.

'sbin' 카테고리의 다른 글

FTP 무한 반복 Script  (0) 2012.11.15
SecureCRT 사용시 유용 정보  (0) 2012.11.15
Ubuntu 에서 vi key-layout이 이상한 경우  (0) 2012.11.15
sed 사용 시 참고사항  (0) 2012.11.15
PuTTY SSH Server 연결시 Auto Login 설정  (0) 2012.11.15
:
Posted by [LunatiC]Simon