cvs에서 branch에 파일을 추가하려면?

곤의 이미지

CVS에서 branch를 하나 생성해서 작업하고 있는데,
파일을 하나 새로 추가하려 하니 잘 안 되네요.
cvs add를 써서 파일을 추가하려고 하면 아래와 같이 에러가 납니다.

cvs server: cannot add file on non-branch tag <bname>

main trunk는 그대로 두고 branch에만 파일을 추가하려고 하는데, 방법을 없을까요?

pynoos의 이미지

-b 옵션으로 태깅한 것을 브랜치로 승격(?)시켜야합니다.

곤의 이미지

죄송하지만 좀 더 자세하게 설명해 주시면 안 될까요?

pynoos의 이미지

아마, cvs status 로 보면, sticky tag에 뭔가가 있을 것입니다.
거기에 branch 라는 말이 있어야 commit이 제대로 됩니다.

만일 sticky tag로 1.9가 있다면, 그 파일은 1.9를 강제로 지정해서 가져온것이고, 아마 수정되었을 것입니다. 이 경우

cvs rtag -b -r 1.9 test_branch module/directory/thefile.c

와 같이 전체 경로를 줘서 test_branch를 만들고

다시

cvs up -r test_branch thefile.c

로 update 한 뒤 (update 할 때, 작업 내용은 살아 있습니다.)

cvs status

로 확인해 보면, 이번에는 sticky tag에 branch 명이 보일 것입니다.

다음 cvs commit 하면 해당 branch의 다음 버전으로 update가 됩니다.

곤의 이미지

답변 감사드립니다.

하지만 제 경우는 조금 다른 경우인데,
cvs status로 확인했을 때 sticky tag 필드에서 버전이 1.x.2 로 표시되고 branch 명도 확실히 보입니다.
기존에 이 branch에 속해 있던 파일들은 정상적으로 관리되는데, 이전에 없는 파일을 하나 새로 추가하고 cvs add로 포함시키려고 했더니 아래와 같은 에러가 나더군요.

cvs server: cannot add file on non-branch tag <bname>

염치 없지만, 그래도 답변 부탁 드릴께요.. ^^

pynoos의 이미지

cvs ci -r 브랜치명 thefile.c

위와 같이 하셨나요? -r 뒤에는 branch 이름이 옵니다.

곤의 이미지

commit 까지 가지도 못했습니다.
commit 전에 cvs add로 새로 만든 파일을 추가해야 하는데, 그것부터 막혀서리..

pynoos의 이미지

아마도, 현재 작업사본 디렉토리가 branch를 checkout한 것이 아니라
revision을 지정하여 받아 오신것 같군요.

cvs co -r 1.2 module

이런식이었겠죠. 이것을 확인하는 방법은 CVS/Tag 파일을 열어보시면
그안에 어떤 태그가 있는지 알 수 있습니다. 그 태그가 브랜치 명이어야합니다.

cvs co -r brancname module

로 다른 곳에 받아 놓고 작업하신 내용을 복사하신뒤에 다시 add, commit 하세요.

곤의 이미지

그건 아닙니다.
cvs co -r <bname> module
으로 사본을 만들어서 작업했습니다 (여러번 확인했습니다).

Sticky tag에 branch명이 출력되구요, 그것도 불안해서
cvs update -r <bname>
한 후에 시도해 보기도 했습니다.

cvs status -v | less로도 살펴봤는데 별다른 문제점을 찾지 못했습니다. 대략 아래와 같습니다.

File: yyyy.c        Status: Up-to-date
 
   Working revision:    1.1.2.2
   Repository revision: 1.1.2.2 /home/CVS/xxx/yyyy.c,v
   Sticky Tag:         xxx_patch1 (branch: 1.1.2)
   Sticky Date:         (none)
   Sticky Options:      (none)

cvs tag -Fb 로 브랜치를 옮겨 볼까도 생각했었는데,
저 혼자 쓰는 게 아니라서 위험하다 싶은 건 할 수가 없네요. ㅠㅠ

pynoos의 이미지

CVS/Tag

파일도 있다면, 그 값은 어떻죠?

lovewar의 이미지

Quote:

cvs tag -Fb 로 브랜치를 옮겨 볼까도 생각했었는데,
저 혼자 쓰는 게 아니라서 위험하다 싶은 건 할 수가 없네요. ㅠㅠ

이 내용으로 봐서는 CVS 클라이언트 저장소(로컬 공간)를 공동으로 사용하는 것으로 보여집니다.

이것이 가능한가요?

곤의 이미지

pynoos님... CVS/Tag 파일의 내용입니다.

Txxx_patch1

브랜치가 맞는데, 이상하죠? ㅠㅠ

그리고, lovewar님.. 클라이언트 저장소를 공유하고 있지는 않습니다.

pynoos의 이미지

곤 wrote:
pynoos님... CVS/Tag 파일의 내용입니다.

Txxx_patch1

브랜치가 맞는데, 이상하죠? ㅠㅠ

그리고, lovewar님.. 클라이언트 저장소를 공유하고 있지는 않습니다.

이름만 브랜치 아닌가요?

ctags rtag -b -r xxx_patch1 xxx_branch1 modulename

으로 다시 한 번 시도해보세요.

곤의 이미지

예.. 해 보았습니다만.. 마찬가지였습니다.. ㅠㅠ

그리고,.. CVS/Tag 파일의 내용이
'T'로 시작하는 게 branch를 가리키는 거 아닌가요?
답변 주신 글을 보고 CVS/Tag에 대해서 찾아봤는데,
branch tag의 경우에는 'T', revision tag의 경우에는 'N', date의 경우에는 'D'로 표시된다고 하던데..

왜 안 되는건지.. 쩝..

여튼, 답변 주셔서 너무 감사합니다. ^

pynoos의 이미지

ctags rtag -b -r xxx_patch1 xxx_branch1 modulename 이 실행 결과는 어떤가요?

lovewar의 이미지

추가하고자 하는 디렉토리의
CVS/Entries 를 조작하는 기법을 사용하는 방법은 어떨까요?

파일명 : CVS/Entries
...
/filename/0/Initial filename//Tbranch_name
D

마자막 "D" 라인 앞에 새로운 라인을 추가하고
추가하고자 하는 파일에 대해서 기술해 줍니다.

추가하고자 하는 파일의 디렉토리에서
CVS commit을 하면 CVS 서버에 등록이됩니다.

-- 덧붙이는 글 --
개인적으로 cvs tag -Fb 해석을 잘못했습니다. 죄송합니다.

곤의 이미지

pynoos wrote:
ctags rtag -b -r xxx_patch1 xxx_branch1 modulename
이 실행 결과는 어떤가요?

cvs rtag ... 를 말씀하시는 거죠?
이걸 써서 브랜치를 새로 만들어서 사용하니 되네요.

하지만..
그 전 것도 분명 브랜치가 맞는 것 같은데, .. 왜 안 됐었던 건지?
여전히 미련이 남는다는... ㅠㅠ

성심껏 답변해 주신 pynoos, lovewar님 감사 드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.