Program Club

소스 제어 대 개정 제어?

proclub 2020. 12. 7. 21:07
반응형

소스 제어 대 개정 제어?


SVN 또는 TFS와 같은 소스 코드 버전을 저장하는 시스템의 올바른 이름은 무엇입니까?

나는 항상 그것을 소스 제어라고 불렀지 만 Wikipedia와 같은 곳에서는 개정 제어라고 부릅니다.

이와 같이 더 복잡한 사이트를 만들려면 둘 다에 대한 태그가 있습니까?


  • 개정 제어 는 소스 제어 도구뿐만 아니라 다른 도구 (Word, OpenOffice 등)에도 사용되는보다 일반적인 용어입니다. 버전을 참조합니다.

  • 소스 제어 는 모든 개정 도구에서 항상 사용할 수있는 것은 아니지만 분기 및 병합을 통해 개정 제어를 제공합니다 (Word는 소스 제어가 아니지만 개정 제어 기능을 제공합니다).

  • 버전 제어 는 모든 버전 (소스, 바이너리 또는 모든 종류의 문서)을 관리한다는 점에서 소스 제어보다 더 일반적인 용어입니다.

참고 : SCM은 소스 코드 관리를 의미하지만 동일한 아이디어를 반영하기 위해 소프트웨어 코드 관리도 의미합니다 (단지 "소스"가 관리되지 않음).
Plus SCM은 파일 그룹 간의 종속성 개념을 도입합니다.
또한 변경 요청 시스템으로 이어지는 변경 수명주기 (변경 시작, 변경 종료 등)의 개념도 포함 할 수 있습니다.


나는 이것을 이렇게 생각하고 싶다.

개정 제어그들이하는 일 입니다.

소스 제어내가 사용하는 것입니다.

:-)


거의 같은 것을 설명하는 세 가지 동의어가 있습니다.

  1. 개정 관리 . 개정 (문서 / 아티팩트 검토 및 문서 / 아티팩트의 후속 버전) 또는 번호 ( 개정 개념 의 추상화 )를 처리합니다.
  2. 소스 제어 . 바이너리가 아닌 텍스트 (소스) 파일을 다룹니다 . 이 차이는 비교를 수행하고 텍스트 파일 간의 차이를 얻는 것이 훨씬 더 쉬운 한 큰 역할을 합니다. 소스 제어와 관련된 기본적인 도구의 전체 범위가있다 : , , , 등의 형태의 소스 제어 솔루션으로 확장 할 수있는 도구 세트는. 이러한 솔루션의 예는 RCS입니다.diffdiff3patch
  3. 소스 코드 관리 . 소스 코드에 대한 더 복잡한 작업을 처리합니다 . repository별도의 branches. 또한 분기가 merged. 소스 코드 관리의 또 다른 부분은 tagging. 소스 코드 관리의 한 가지 문제점은 SCM이라는 약어가 있다는 것입니다. 이 약어는보다 광범위한 활동 세트 ( 소프트웨어 구성 관리) 를 설명하는 데 사용됩니다 . 때문에 많은 혼란이있다 소스 코드 관리 의 하위 집합입니다 소프트웨어 구성 관리 도 등의 활동을 다루는 빌드 관리 , 배포 관리 , 지속적인 통합 ,종속성 관리 , 릴리스 관리
  4. 버전 관리 . 모호함을 피하기 위해 소스 코드 관리 와 같은 용어를 대체하는 데 사용됩니다 . 개정 제어소스 제어의 개념을 모두 통합하여 거의 동일한 개념을 설명합니다. 현재 개정 제어소스 제어 라는 두 가지 용어 개정 제어개정 제어 작업을 모두 해결하는 광범위한 도구 (CVS, SVN, Git, Mercurial, ClearCase, Perforce, VSS 등)를 고려하여보다 적절한 버전 제어대체됩니다. 동시에 소스 제어 .

이 모든 개념을보다 명확하게 구분하기위한 그림 :

여기에 이미지 설명 입력


  • VCS ( Version Control System )는 가장 일반적으로 사용되는 용어입니다.
  • 소스 코드 관리 (SCM)는 git에서 사용되지만 일종의 발명품이며 이미 소프트웨어 산업에서 사용되는 소프트웨어 구성 관리 와 혼동 될 수 있으며 동일하지 않습니다.

특정 시스템 (예 : SVN)에는 저장소에있는 모든 파일의 특정 버전 세트와 관련된 번호를 나타내는 용어 개정 이 있습니다. 이러한 시스템에서 개정 ( SVN 개정 )은 본질적으로 버전 ( 소스 버전 )을 의미 합니다 . 그렇지 않으면 개정 제어버전 제어 는 동일한 용어입니다.


사용 된 용어는 그다지 정확하지 않습니다. 다섯 가지 관련 차원을 설명하는 기사가 있습니다. 소프트웨어 개발을위한 데이터 관리 도구는 동시에 3 개 이상을 일관되게 지원하지 않는 경향이 있습니다. 다섯 가지를 모두 지원하려면 개발 프로세스를 설명해야합니다.

  • 버전 (의미 : 수정)
  • 보기 (의미 : 동등성, 파생)
  • 계층 (의미 : 구성)
  • 상태 (의미 : 승인, 접근성)
  • 변형 (의미 : 제품 변형)

Peter van den Hamer와 Kees Lepoeter (1996) 디자인 데이터 관리 : CAD 프레임 워크, 구성 관리 및 제품 데이터 관리의 5 가지 차원, Proceedings of the IEEE, Vol. 84, No. 1, 1996 년 1 월


"올바른"이름은 없습니다. 네 가지 일반적인 이름은 다음과 같습니다.

  • 버전 관리 시스템
  • 개정 관리 시스템
  • 소스 제어 시스템
  • 소스 코드 관리 시스템

다른 이름은 버전 제어입니다.

이 사이트에서 사용 된 태그에 따라 "소스 제어"가 가장 인기있는 것입니다 (이 사이트는 프로그래밍에 관한 것이기 때문에 매우 일반적입니다).

  • 소스 제어 (633 태그)
  • 버전 관리 (587)
  • 개정 관리 (31)

MIL-STD 973 구성 관리에 대해 설명합니다.

Software Configuration Management is done exactly the same.

See the CMMI for a nice explanation of SCM/CM.

The systems of which you speak are version control systems. They version things.

Old SCCS was a Source Code Control System.

Source code control systems maintain revision history.

Say you change a file from revision

1.1 , 1.2, 1.3.

At 1.3 we release "Awesome Edition" of our product.

1.3 is a revision AwesomeEdition is a version.

In systems like CVS, revisions happen as numbering changes , and tags mark versions. SVN type repository revision numbering confuses government customers who expect MIL-STD kind of behaviour.

The great thing about standards in change management is that there are so many to choose from.


If historic precedence is anything to go by, the term should be Source Code Control - see http://en.wikipedia.org/wiki/Source_Code_Control_System


So, what exactly are you looking for now?

I don't think there is one right term. Both terms, as well as some other already mentioned in other replies are used for basically the same thing.

Persons you are talking to will connect it to slightly different meaning even when using the same word for it - and they can mean really exactly the same thing, even when using another word.

Then again, the vocabulary used around these things can also be different(or attached to different meanings) in circles around different software implementations of this concept.

While writing this, it comes to my mind that this is a very natural phenomenon - in other areas you also have multiple words standing for basically the same meaning - while some would argue there are actually slight differences, some others would say these differences do not really exist or aren't worth thinking about. And it's never guaranteed that when two people use the exact same word, that they really mean the exact same thing.


I added a comment, but I think it can qualify for an answer as well. I have a little different view then some of the other comments already expressed.

In general SCM (Software Configuration Management) or (Source Code Management - derived term) it is easy to understand as it is used as an umbrella term which includes both revision control as well as other techniques like baseline management. See http://en.wikipedia.org/wiki/Software_configuration_management. In general modern SCM tools which range from CVS to Git include both of these techniques and many more useful features like: permission control, rights management, security auditing, allow customization of the SCM flow (ClearCase), integrate with build-system and issue tracking software, etc... I think the list is open because anything related to software change and management can enter here.

So the main confusion comes from understanding the difference between Revision Control, Version Control and possibly Source Control. First of all, all terms which include "source" are all derived terms, by that I mean some people are bothered by all these generic terms (configuration management - what's that?) and insist that they work with source code in particular and they don't care about other use-cases; which is fair point.

Regarding Revision Control vs Version Control I think the correct term (in context of tools like SVN, Git) is Revision Control. In my view, with the term Revision Control the emphasis is on managing the change (besides managing the versions) of the (not only) source code files, while with Version Control the emphasis falls on managing only the versions of the files.

이론적으로 누군가는 바이너리 차이 및 병합 지원없이 바이너리 파일추적하고 관리 할 수있는 소프트웨어를 작성할 수 있으며이 버전 제어 시스템을 호출합니다. 그러나 SVN과 같은 도구의 경우 Git 은 파일 변경 사항추가로 관리 할 수 있습니다 : diffing, merging, Git의 경우 유명한 rebasing.

결론적으로 Revision Control은 Version Control을 포함하며 CVS, SVN, Git과 같은 이름 지정 도구에 더 적합합니다. 소스 제어는 파생 용어이며 특정 SCM 측면의 이름을 지정하려는 경우 피해야합니다.

SCM > Revision Control > Version Control

참고 URL : https://stackoverflow.com/questions/1056912/source-control-vs-revision-control

반응형