dry run 이라는 옵션도 있네.

merge는 안하고 항상 혼자 쓰다 보니..

그냥 trunk 날리고 branch를 다시 trunk로 복사하거나(이력으로 인해)

trunk와 branch를 수동 머지 했는데 조금 편한법을 찾아 봐야겠다 ㅠㅠ


[링크 : http://asbear.tistory.com/72]

    [링크 : http://asbear.tistory.com/50]

[링크 : http://egloos.zum.com/codenongsa/v/258234]

[링크 : http://jee1.tistory.com/888]

[링크 : http://greenbay.usc.edu/csci577/tools/Subversion/Subversion_User_Manual.pdf]



+

2015.12.02

[링크 : http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.merge.html]

[링크 : https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html]

[링크 : http://hoiogi.tistory.com/20]

Posted by 구차니

서버내에서 프로젝트 파일들 버전별로 엉성하게 관리하던거 정리하면서

로컬 저장소의 경로를 바꾼다고 switch 하는데 "shares no common ancestry with" 에러 발생 -_-

찾아봐도 무슨 소리인지 모르겠고..



걍 아래 ignore ancestry 하면 저장소 이동 완료

먼가 찜찜해...


[링크 : http://svnbook.red-bean.com/en/1.7/svn.branchmerge.switchwc.html]


+

고민을 해보니.. 리비전 이력상 구버전을 신버전 위치로 바꾸려고 하지만

신버전 위치에 구버전 리비전 이력이 없다면... 그럴거 같기도 하고.. 조금은 더 파악해 봐야겠다



음.. switch는 relocate와 달리.. 머랄까.. branch간 update + merge 기능이라고 해야하려나?

결론은.. 내가 한 행위에 대해서는(서버측 경로 변경) relocate로 해결해주는게 옳다


The svn switch command transforms an existing working copy to reflect a different branch.

Because svn switch is essentially a variant of svn update, it shares the same behaviors; any local modifications in your working copy are preserved when new data arrives from the repository.

[34] You can, however, use svn relocate if the URL of your server changes and you don't want to abandon an existing working copy. See svn relocate in Chapter 9, Subversion Complete Reference for more information and an example.

'프로그램 사용 > Version Control' 카테고리의 다른 글

svnadmin dump로 덤프/합치기  (0) 2015.11.26
svn merge  (0) 2015.08.19
svn 저장소 합치기  (0) 2015.06.06
svn diff syntax highlight 적용해서 보기  (0) 2015.01.30
svn add *.so ignored / --no-ignore  (0) 2015.01.06
Posted by 구차니

개인적으로 만들어서 사용하던 로컬 저장소를 메인 소스에

소스가 아닌 히스토리까지 합치려고 하면

다음과 같이 하면 된다고 하는데..

딱히 합쳐볼 만한 프로젝트가 없어서 해보긴 겁나고.. ㄷㄷ


$ svnadmin dump > project<n>.dmp

$ svn mkdir "<repo url>/project<n>"

$ svnadmin load --parent-dir "project<n>" <filesystem path to repos>


[링크 : http://stackoverflow.com/questions/267256/combining-multiple-svn-repositories-into-one]

[링크 : https://blog.tinned-software.net/merge-two-svn-repositories/]

[링크 : http://geekswithblogs.net/kariemali/archive/2009/06/02/how-to-merge-two-svn-repositories.aspx]


2011/01/08 - [프로그램 사용/CVS / SVN / GIT / Mercurial] - SVN 저장소 합치기 - merging SVN repositories

2011/05/09 - [프로그램 사용/CVS / SVN / GIT / Mercurial] - svnadmin dump / load를 이용한 저장소 합치기



Posted by 구차니

콘솔에서 보려니 까매서.. 눈에 안보이는 까막눈...



$ svn diff | view -

빔: 표준입력에서 읽는 중...


$ whereis view

view: /usr/bin/view /usr/share/man/man1/view.1.gz

$ ll /usr/bin/view

lrwxrwxrwx 1 root root 22 2014-08-25 16:42 /usr/bin/view -> /etc/alternatives/view*

$ ll /etc/alternatives/view

lrwxrwxrwx 1 root root 18 2014-08-25 16:42 /etc/alternatives/view -> /usr/bin/vim.gnome*


[링크 : http://www.commandlinefu.com/commands/view/2420/colored-svn-diff]

Posted by 구차니

svn add나 import 시에

/etc/subversion/config

~/.subversion/config와 상관없이 ignore 되는 확장자가 발생을 하는데

일단 이런 현상을 겪기 싫다면.. --no-ignore를 기본적으로 사용하는게 좋을듯 하다.



$ svn help import

import: 버전관리 대상이 아닌 파일과 디렉토리를 추가합니다.

사용법: import [PATH] URL


  PATH의 하위 디렉토리를 재귀적으로 URL에 추가합니다.

  PATH가 생략되면 '.' 이 사용됩니다. 필요한 경우,

  저장소 상에 상위 디렉토리가 자동으로 생성됩니다.

  PATH가 디렉토리이면, 그 내용은 URL에 모두 추가 됩니다.

  --force가 지정되면 버전관리 할 수 없는 장치 파일이나

  파이프등은 무시됩니다


옵션:

  -q [--quiet]             : 아무것도 출력하지 않거나, 요약 정보만 출력합니다

  -N [--non-recursive]     : obsolete; try --depth=files or --depth=immediates

  --depth ARG              : 적용할 단계를 제한합니다. 가능한 인자 ('empty', 'files',

                            'immediates', or 'infinity')

  --auto-props             : 자동 속성기능을 활성화합니다

  --force                  : 강제로 실행합니다

  --no-auto-props          : 자동 속성기능을 비활성화합니다

  -m [--message] ARG       : 커밋 로그 메시지를 지정합니다

  -F [--file] ARG          : arg에서 로그 메시지를 읽습니다

  --force-log              : 로그 메시지의 유효성을 확인하지 않습니다

  --editor-cmd ARG         : arg를 외부 편집기로 사용합니다

  --encoding ARG           : 값을 arg에 해당하는 문자코드로 취급합니다

  --with-revprop ARG       : set revision property ARG in new revision

                             using the name[=value] format

  --no-ignore              : svn:ignore로 지정한 것과 디폴트로 무시하는 파일들을 무시하지 않습니다


글로벌 옵션:

  --username ARG           : arg를 접속에 필요한 사용자 ID로 사용합니다

  --password ARG           : arg를 접속에 필요한 패스워드로 사용합니다

  --no-auth-cache          : 인증 정보를 캐시에 저장하지 않습니다

  --non-interactive        : 대화식 사용자 입력을 기다리지 않습니다

  --trust-server-cert      : accept unknown SSL server certificates without

                             prompting (but only with '--non-interactive')

  --config-dir ARG         : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다

  --config-option ARG      : set user configuration option in the format:

                                 FILE:SECTION:OPTION=[VALUE]

                             For example:

                                 servers:global:http-library=serf 


$ svn help add

add: 파일과 디렉토리를 버전관리 대상에 넣습니다. 저장소에

추가하도록 스케쥴링 되며, 다음 커밋할 때, 추가됩니다.

사용법: add PATH...


옵션:

  --targets ARG            : ARG로 주어진 파일 내용을 옵션으로 추가합니다

  -N [--non-recursive]     : obsolete; try --depth=files or --depth=immediates

  --depth ARG              : 적용할 단계를 제한합니다. 가능한 인자 ('empty', 'files',

                            'immediates', or 'infinity')

  -q [--quiet]             : 아무것도 출력하지 않거나, 요약 정보만 출력합니다

  --force                  : 강제로 실행합니다

  --no-ignore              : svn:ignore로 지정한 것과 디폴트로 무시하는 파일들을 무시하지 않습니다

  --auto-props             : 자동 속성기능을 활성화합니다

  --no-auto-props          : 자동 속성기능을 비활성화합니다

  --parents                : 임시 상위개체 삽입


글로벌 옵션:

  --username ARG           : arg를 접속에 필요한 사용자 ID로 사용합니다

  --password ARG           : arg를 접속에 필요한 패스워드로 사용합니다

  --no-auth-cache          : 인증 정보를 캐시에 저장하지 않습니다

  --non-interactive        : 대화식 사용자 입력을 기다리지 않습니다

  --trust-server-cert      : accept unknown SSL server certificates without

                             prompting (but only with '--non-interactive')

  --config-dir ARG         : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다

  --config-option ARG      : set user configuration option in the format:

                                 FILE:SECTION:OPTION=[VALUE]

                             For example:

                                 servers:global:http-library=serf


$ vi /etc/subversion/config

 96 ### Section for configuring miscelleneous Subversion options.

 97 [miscellany]

 98 ### Set global-ignores to a set of whitespace-delimited globs

 99 ### which Subversion will ignore in its 'status' output, and

100 ### while importing or adding files and directories.

101 ### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.

102 # global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo

103 #   *.rej *~ #*# .#* .*.swp .DS_Store 


Warning: There is an error in the book: 

The default value of global-ignores was changed in svn 1.5 and 

now includes *.so *.so.[0-9]* files, 

but the one displayed in the book was not updated. 


[링크 : http://svn.haxx.se/users/archive-2009-05/0899.shtml]


[링크 : http://stackoverflow.com/.../svn-propget-svnignore-returns-nothing-but-svn-is-obviously-ignoring-my-files]

[링크 : http://svn.haxx.se/users/archive-2009-02/0821.shtml]

Posted by 구차니

externals에서 내 프로젝트에서 원하는 경로에

외부 저장소를 불러오거나

특정 리비전을 불러와야 할 경우에 대해서 사용하는 추가적인 기능이다


개인 리파지터리 만들어서 해봐야지..


---

2014.12.30 added


Step 1. 원하는 폴더에서 우클릭으로 TortoiseSVN - Properties

Step 2. Properties 창에서 New - Externals


Step 3. svn:externals - New


Step 4. Local path는 절대 경로가 아닌 우클릭한 경로 기준의 상대경로로

           프로젝트를 저장할 폴더명 만 적어 주면된다 -_ㅠ

           URL은 외부 프로젝트의 경로를 적어준다.

           아래의 Revision은 일단.. 항상 최신 버전을 받아와야 한다면 HEAD를 특정 리비전을 위해서는 Revision으로


Step 5. 별다른거 없이.. Added가 나오는데 프로젝트로 전부 추가되는거 봐서는...

           큰 프로젝트를 svn:externals로 추가할경우 상당한 시간이 걸릴 것으로 예상된다.


Step 6. svn:externals에 추가후에 commit을 하던 update 후에 commit을 하던

           뜨는건 modified(property change only) 라고 뜬다. 즉, 내 저장소의 용량에는 영향이 없다는 것?


Step 7. repo. browser로 보면 이렇게 바로가기로 출력된다.


---


[링크 : http://baboc.tistory.com/97]

[링크 : http://itbaby.egloos.com/4295117]

[링크 : http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html]

Posted by 구차니
해당 파일을 남겨야 한다면
1. 파일 이름 변경
2. svn del 파일이름
3. 파일 이름 복구

해당 파일을 남길 필요가 없다면
1. svn del 파일이름

[링크 : https://kldp.org/node/52211]


+ 혹시나 해서 테스트 한 내용 백업파일을 만들어 두길 잘했지 ㅋㅋ
아무튼 svn del을 하면 해당 파일을 삭제하게 되니 주의요망!
$ svn st
?       libliveMedia.a.bak
A       libliveMedia.a

$ ll libliveMedia.a* 
-rw-r--r--  1 minimonk minimonk 1489620 2014-11-17 09:13 libliveMedia.a
-rw-r--r--  1 minimonk minimonk 1489620 2014-11-17 09:14 libliveMedia.a.bak

$ svn del --force libliveMedia.a
D         libliveMedia.a

$ ll libliveMedia.a*
-rw-r--r-- 1 minimonk minimonk 1489620 2014-11-17 09:14 libliveMedia.a.bak

$ svn st
?       libliveMedia.a.bak 

 
Posted by 구차니
export는 대개 서버의 버전에서 관리용 .svn 디렉토리를 빼고 받아오지만
수정중인 워킹 카피에서 깔끔(?)하게 .svn을 지우는 방법으로
해당 워킹 카피를 export 해버리면 된다. 


a-wc는 원본 워킹 카피의 경로(절대 경로 던 상대경로 던)
my-export는 a-wc를 export할 목적지 경로이다.

Export from your working copy (doesn't print every file and directory):

$ svn export a-wc my-export
Export complete.
Export directly from the repository (prints every file and directory):

$ svn export file:///var/svn/repos my-export
A    my-export/test
A    my-export/quiz
Exported revision 15.

[링크: http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html
Posted by 구차니
Ubuntu 10.04 LTS에서 테스트 완료

function svn {
  command svn "$@" | awk '
  BEGIN {
    cpt_c=0;
  }
  {
    if        ($1=="C") {
      cpt_c=cpt_c+1;
      print "\033[31m" $0 "\033[00m";  # Conflicts are displayed in red
    }
    else if   ($1=="A") {
      print "\033[32m" $0 "\033[00m";  # Add in green
    }
    else if   ($1=="?") {
      print "\033[36m" $0 "\033[00m";  # New in cyan
    }
    else if   ($1=="D") {
      print "\033[35m" $0 "\033[00m";  # Delete in magenta
    }
    else                {
      print $0;                        # No color, just print the line
    }
  }
  END {
    print cpt_c, " conflicts are found.";
  }';
} 

[링크 : http://stackoverflow.com/questions/8786400/svn-add-colors-on-command-line-svn-with-awk-in-bash]



\e[00m"

00에 숫자가 들어가면 된다.
30대는 foreground color
40대는 background color 를 지칭하고

1~7은 아래의 색상값을 가지게 된다.


[링크 : http://en.wikipedia.org/wiki/ANSI_escape_code]
[링크 : http://sunyzero.egloos.com/viewer/4282610]
+
svn ci 할때 뭔가 에러가 발생하는 기분이니 확인필요 
Posted by 구차니
전보다는 mingw가 빨라졌는지 속도가 꽤 나온다. (3~5MiB)
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Cloning into 'linux'...
remote: Counting objects: 3656409, done.
remote: Compressing objects: 100% (555211/555211), done.
Receiving objects:  16% (592016/3656409), 302.04 MiB | 3.47 MiB/s 

mingw git port
[링크 : http://git-scm.com/downloads]
[링크 : http://msysgit.github.io/]

이녀석.. 설치과정이 너~~~무 길다 -_-











메뉴는 Init / Gui / Bash 세가지


Gui를 누르면 먼가 좀.. TortoriseHg 같은 UI가 나온다 -_-a


궁금해서 추가해보지만 안된다 ㅠㅠ


걍 bash에서 명령어 복/붙 해서 해보니 한참 걸리네..


git history 하니 이렇게 이쁘게 쫜!


git gui



tortoise git
[링크 : https://code.google.com/p/tortoisegit/]

만만한 거부기!








확실히.. git 보단 조금은 단간한 설치 과정.
그리고 익숙한 context menu!


git clone을 통해서 svn checkout 하듯 받아 오면 되는데
Load Putty Key는 체크는 되어있지만 별 상관은 없는듯 하다.


위에서 mingw로 linux에 받고 있어서 일단 linux2로 받는데 속도는 mingw를 쓰는지 거의 동일하게 나온다.


show log


와.. 냅뒀더니 미친듯이 메모리 / 하드를 긁어대네.. 메모리 4기가인데 이거 머하는 짓이야!!! ㅠㅠ


2010/03/18 - [프로그램 사용/CVS / SVN / GIT / Mercurial] - GIT는 리눅스에서 받으시는걸 추천합니다. 

후덜덜. 리눅스 커널을 받았더니 총 1.37 기가


소스 자체는 530 메가 밖(에 일리가 있나!!!!)에 안된다.

 
Posted by 구차니