문제

CWD에 포함된 VC 저장소의 종류에 따라 별칭을 동적으로 정의하는 몇 가지 쉘 항목이 설정되어 있습니다. 예를 들어 'd'는 'svn diff' 또는 'git diff'를 실행합니다.(기준 이 블로그 게시물, 누구든지 관심이 있다면...)

git repo와 git-svn repo에 있는지에 따라 일부 별칭을 다르게 정의하고 싶습니다.둘 사이의 차이점을 쉽게 알 수 있는 방법이 있나요?

도움이 되었습니까?

해결책

GIT-SVN 리포지토리인지 정확히 어떤 리포지토리를 결정할 때 약간주의해야합니다. 저장소에는 둘 이상의 SVN 저장소가 포함될 수 있습니다.

Kafka의 솔루션은 SVN 저장소가 -s 또는 -std -layout 옵션으로 복제 된 경우에만 작동합니다. ~이다 지점 trunk.

CodeLogic의 답변은 SVN 저장소가있는 경우에만 작동합니다. svn - 그것이 사실이라는 요구 사항은 없습니다.

거기에 있는지 확인하는 가장 쉬운 방법 ~이다 구성의 SVN-remote는 다음과 같습니다.

$ git config --get-regexp ^svn-remote

이는 구성된 GIT-SVN 저장소를 찾을 수 있습니다. 일치가 있으면 상태 0으로 종료하고 일치가없는 경우 1입니다.

그러나 이것이 SVN 저장소가 실제로 사용된다는 것을 의미하지는 않습니다. 누군가가 SVN 저장소를 가져 왔을 수도 있지만, 사용은 하위 모듈 또는 하위 트리 병합 또는 전혀 그렇지 않을 수도 있습니다. GIT-SVN 저장소의 메타 데이터가 켜져있는 경우 다음과 같은 것을 사용하여 현재 헤드에서 SVN 개정이 사용되었는지 확인할 수 있습니다.

$ git rev-list -1 --grep='git-svn-id' HEAD

그러나 그것은 아마도 너무 복잡 할 것입니다. 당신은 결정합니다.

다른 팁

아마도 출력을 사용할 수 있습니다 git config GIT와 GIT-SVN Repo를 구별하도록 명령.

git config --get svn-remote.svn.url

SVN URL이 동기화되는 경우 반환해야합니다.

또한 트렁크라는 분기와 트렁크@[REV]라는 분기가 있습니다.하지만 코드로직스 접근 방식이 더 쉽고 깔끔하다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top