2013-02-01 2 views
0

SVN에서이 사람이하는 것과 비슷한 것을 얻을 수있는 방법이 있습니까? How to use a subversion repository as a template for new projects?템플릿 프로젝트로 Git/Hg 저장소 사용

본질적으로 새로운 CMS를 기반으로하는 간단한 CMS 사이트 인 기본 ASP.NET MVC 프로젝트가 있습니다.

매번 새로운 사이트에 저장소를 복제해야한다는 아이디어가 마음에 들지 않습니다. 다른 저장소에 같은 저장소가 여러 개 만들어지기 때문에 저에게 충분히 깨끗해 보이지 않기 때문입니다.

내 문제의 해결 방법이 있습니까? 새 사이트에 대한 새 지점을 만들어야합니까? 그렇게하면 두 가지 방식 모두에서 변화를 가져올 수 있습니다. 이는 유연성이 뛰어나고 여러 프로젝트를 지원하지만 모든 것을 하나의 repo로 유지하는 것입니다.

이 (가 고정 될 경우 때때로 버그가 새 사이트에서 찾을 수있는 우리는 원본 사이트와 그 반대에 다시 수정을 가지고 싶은)

가 기반하십시오 당신이 모두 힘내/수은에 답변 , 나는 둘 다 사용하고 또한 충분히 유사하다고 믿는다.

답변

2

가지가 너를 도울 수있는 것이 아니라고 생각합니다. 매우 기본적인 시간에서 분기는 동일한 프로젝트에서 작동하지만 차이점 모드 (유지 보수, 다음 버전, 새로운 기능 추가 및 이와 같은) 및 새 프로젝트 별 새 분기 작성은 개념적 관점에서 잘못된 것입니다.

왜 템플릿 프로젝트를 만들지 않으려한다면 github에 저장하고 새 프로젝트를 시작할 때마다 컴퓨터에서 포크 한 다음 새 저장소를 만들고 새 사이트를 밀어 넣으십시오. 생각은 표준 접근 방식입니다.

그리고 그 목적을 위해 고급 무언가를 만들고 싶다면 새 프로젝트를 시작할 때마다 필요한 모든 것을 설치하는 Windows 설치 프로그램을 만드는 것이 좋습니다.

+0

나는 그것이 다음과 같다고 추측한다. 다른 사람이 더 나은 조언으로 답변을하면 다시 생각해 볼 수 있습니다. – mare

+0

기본적으로 Github의 저장소를 포크하는 것은 아니며 기본적으로 복제본을 만드는 것입니까? 그러나 일부 추가 된 "githubbiness"(끌어 오기 요청 등)? – icabod

+0

예, 내부에 복제가 있습니다 – Ph0en1x

1

저장소를 복제하기 만하면됩니다. 다른 기본 분기가있는 여러 개의 복제본을 피하려면 해당 사이트의 "기본 분기"가 될 사이트 별 분기에 대한 수정 작업을 수행하십시오. 그런 다음 끌어서 병합하여 "템플릿"코드를 간단히 업데이트 할 수 있습니다.

템플릿에서 변경 사항을 적용하기위한 (쉬운) 옵션이없는 깨끗한 시작을 원할 경우 저장소 내용의 스냅 샷을 가져 와서 새 저장소를 초기화하십시오. 즉 충분히 깨끗하지 않는 것 다른 위치에 같은 저장소의 여러 복사본을 만들기 때문에 나는 새로운 사이트에 때마다 저장소를 복제하는 데의 아이디어를 좋아하지 않는다


나를.

음, 그게 버전 제어 시스템이하는 것입니다. 기술적으로 말해서 중앙 저장소가 없습니다. "중앙 저장소"는 단순히 관련된 모든 사람이 자신의 변경 사항을 공유하는 데 사용하기로 동의 한 특정 복제본을 의미합니다. 또한 전적으로 DVCS 사용자, 중앙 저장소에 어떤 물건을 밀어 넣을 지, 그리고 복제본에만 보관하는 것은 DVCS 사용자에게 달려 있습니다.

3

@hyde에 따르면, 복제는 DVCS가 작동하는 방식과 비슷하므로 실제로 문제가 없어야합니다.

예를 들어 우연히 템플릿 변경 사항을 사이트로 푸시 할 수 없으면 새 리포지토리를 초기화하고 다른 작업을 수행하기 전에 템플릿에서 pull (저는 여기 의욕, 나는 비슷한 거라 생각의 관점에서 생각하는) 힘내 가능하다 :

$ hg init new_project 
$ cd new_project 
$ hg pull -u ../template 
$ hg push 
comparing with default-push 
abort: repository default-push not found! 

그것이 아니므로() 모든 변경 집합을 포함한 최신 템플릿으로 업데이트 새 저장소를 만들 수 있지만 것이 순서 직접 복제하면 우연히 템플릿으로 변경 사항을 푸시 할 수 없습니다. 템플릿에서 새 저장소를 생성

$ hg push ../template 
pushing to ../template 
searching for changes 
no changes found 

: 초기 변경 집합이 동일 당신이 새 프로젝트의 템플릿에 유용하게 변경하는 경우에는, 당신은 여전히 ​​대상을 지정하여 다시 그것을 밀어 수 있습니다 이 방법은 리포지토리가 "링크"되어 있지는 않지만 최근 템플리트 변경 사항을 가져 오는 것이 간단하다는 것을 의미합니다.

+0

이것은 훌륭하지만 포크와 본질적으로 같지 않습니까? 나는 포크 접근 방법을 사용하기로 결정했고, 지난 며칠 동안 (이 질문을 한 이후로) 나에게 도움이되었다. 그런 다음 간단히 당기기를 요청합니다. 누락 된 유일한 점은 선택적으로 끌어 오기를받는 방법을 알지 못한다는 것입니다 (10 개의 커밋이 있고 2 개만 필요함) 또는 실제로 끌어 오기 요청 자체에 커밋을 실제로 선택적으로 넣는 방법입니다. – mare

+0

기본적으로 포크 (forking)와 같은 생각입니다. github이나 bitbucket 같은 것을 사용하지 않고 로컬에서 구현할 수있는 방법 일뿐입니다. 때로는 옵션이 아닙니다. – icabod