글쓴이: 익명 사용자 / 작성시간: 목, 2021/03/25 - 6:11오후
안녕하세요
Visual Studio 에서 ankhsvn 으로 Trunk (Platform 1이라고 하겠습니다.)및 Branch 만들어서 사용중입니다.
Trunk (Platform 1)에서 사용중이던 소스를 새로운 Trunk (Platform 2라고 하겠습니다)를 만들려고 하는데
어떻게 하면 될까요??
Platform 1처럼 동일하게 SVN trunk 로 다시 만들면 될까요??
수정사항
현재 작업중인 프로젝트를 trunk 로 만들려면 저장소를 다시 새로 만들면 되나요??
monorepo vs polyrepo를 한번 검색해
monorepo vs polyrepo를 한번 검색해 보시면 도움이 될 것 같습니다.
polyrepo는 각 프로젝트별로 완전히 저장소(소스)가 분리되는 형태이고.
monorepo는 하나의 저장소에 각각의 프로젝트가 존재하고 프로텍트별로 trunk,branches,tags가 존재하는 형태입니다.
apache(subversion)의 저장소가 monorepo 형식이죠.
* https://svn.apache.org/repos/asf/
* https://svn.apache.org/repos/asf/subversion/
만약 프로젝트의 연관성이 크다면 monorepo 방식이 맞을 것 같습니다.
프로젝트별로 merge할 일이 많이 생길테니까요...
구조 감사합니다
프로젝트의 연관성을 생각해봐야겠네요.
polyrepo repo1 main (trunk?)에서 작업하던 것을 repo2로 만들거나 옮길 수도 있나요?
아니면 monorepo 처럼 platform1 을 platform2 로 복사하거나 생성할 수 있는지도 알아봐야겠네요.
감사합니다
ms windows 환경에서 svn을 사용하신다면
ms windows 환경에서 svn을 사용하신다면 tortoisesvn을 추천해 드립니다.
tortoisesvn내에서 windows 탐색기처럼 생성/삭제/이동/이름변경 같은걸 맘껏 하실 수 있습니다.
문의
제가 사용하고 있는 구조가 monorepo 맞나요? (사진 01, 02)
Platform1 (예시)이라는 저장소 안에 Trunk(.sln), branches 가 있고 branches 안에 B,C,D..etc 여러 프로젝트 폴더가 있습니다.
여기서 Platform1 의 trunk? branches? 있는 소스를 분리해서 Platform2 개념으로 새로 생성하려고 합니다.
말씀해주신 그림의 monorepo 에서 platform2로 하면 좋을 지 poly(multi)repo 의 repo2 저장소를 새로 생성할 지 study를 해봐야겠습니다.
제가 visualsvn은 다루어 보지 못해서 정확한
제가 visualsvn은 다루어 보지 못해서 정확한 답변이 될지는 모르겠습니다.
일단 이미지 상으로 보면 polyrepo 형식인것 같습니다.
monorepo 형태가 되려면 다음과 같은 형식이 되어야 합니다.
polyrepo의 장점과 단점은
장점
* 각 project(repo)별로 각자의 revision number를 가진다.
* 각 project(repo)별로 삭제/추가/백업할 수 있다.
단점
* 각 project(repo)별 변경사항들을 다른 project(repo)에 merge하기가 까다롭니다.
monorepo의 장점과 단점은
단점
* 하나의 repo만 백업/복구하면 모든 project를 백업/복구할 수 있다.
* 하나의 project의 변경사항들을 다른 project에 merge하기 쉽니다.
단점
* 각 project의 revision 번호가 일괄적이지 않다.
문의
그림에서 말씀 못 드린 것이 있는데, 일단 저는 최상단에 있는 repositories 중 한 개의 Platform1 (A라고 하겠습니다)만 사용하고 있습니다. A 에서 trunk 와 branches 로 작업중입니다.
나머지 B, C 폴더는 테스트용으로 만든 것입니다..
D repositories 를 새로 만들거나 polyrepo 로 작업 하였을 때, 이미 Platform1 으로 받아서 작업중인 소스를 다른 곳으로 옮길 수가 있는건지요?
visualsvn을 사용해 보지 못해서 정확한 답변은
visualsvn을 사용해 보지 못해서 정확한 답변은 아닐 수 있습니다.
결론적으로는 visualsvn도 어딘가에 Platform1이라는 저장소를 가지고 있습니다.
하드디스크에 디렉토리 형태로요...
이 디렉토리를 복사해서 Platform2를 만들면 똑같은 내용의 Platform1과 Platform2라는 저장소가 생깁니다.
만약 새롭게 시작하고 싶으시다면(Platform1/trunk의 소스로 새로운 저장소를 만든다면)
Platform2 저장소를 만들고, trunk를 checkout 받으신 후에 Platform1의 trunk의 파일및 디렉토리들(.svn은 제외)을 그대로 복사해서 add한 후에 commit하시면 되겠지요...
댓글 달기