2016-11-21 3 views
0

CVS의 경우 둘 다 서로 바뀌어 사용됩니다. 나는 branch가 git, clearcase 등에서 개발 된 갈림길이라는 것을 이해한다. CVS 문학은 다소 혼란 스럽다. 내 이해를 위해 그들은 다릅니다. 의견을 부탁합니다.CVS의 태그와 분기의 차이점은 무엇입니까? 그들은 동의어입니까?

+1

태그 [지점과 다른 태그는 어떻게됩니까? 내가 여기서 사용해야합니까?] (http://stackoverflow.com/questions/1457103/how-is-a-tag-different-from-a-branch-which-should-i-use-here) –

+0

@EvanTrimboli : 그 질문은 자식에 관한 것입니다 -이 질문은 특히 CVS에 관한 것입니다. –

+0

답변은 기본적으로 동일합니다. –

답변

1

동의어는 아닙니다.

git에 익숙하다면, CVS에서 git처럼 높은 개념적 관점에서 볼 때와 거의 같습니다.

"지점"은 체크 아웃 할 수있는 작업 라인이며 변경 내용을 커밋합니다. 분기에는 여러 개의 파일이 있으며 각 파일에는 분기 별 기록이 있습니다.

"태그"는 특정 시점에서 저장소의 스냅 샷을 나타냅니다. 태그에 커밋을 추가 할 수 없습니다.

여기에이 솔직히 모든 꽤 표준 소프트웨어 용어 인 예를 들어 사진

  tag v1.1 
      | 
-o---o---o---o---o---o HEAD (the "main trunk") 
    \ 
    \---o---o---o feature_branch 

입니다.

일부 CVS-특정 음 :

  • 많은 CVS는 지점 또는 태그를 취할 것입니다 명령. 그래서 cvs update -r <branch> 또는 cvs update -r <tag> (git에서 할 수있는 것처럼). 태그로 업데이트했다면 커밋을 할 수 없으며 지사로 업데이트 한 경우 할 수 있습니다. CVS는 "태그 또는 브랜치"에 실제로 사용 되더라도이 "고정 태그"를 저장하기 위해 하나의 필드만을 사용합니다.
  • 사실, CVS에서 태그는 역사적인 시점에서 어느 한 지점의 상태를 나타낼 필요는 없지만 당신이 묻고있는 것 때문에 너무 진보했습니다. cvs에서 모든 파일 하위 세트 및 파일 버전 조합을 함께 태그 할 수 있습니다.
  • CVS는 실제로 파일 위주의 repo-centric이 아니므로 위의 다이어그램은 repo를 마치 하나의 유닛 인 것처럼 보여줍니다.