git 버전 번호 사용 및 표시 사용하기

4894 단어 hg-git

묘사

hggit를 사용할 때 나는 git 사용자와 상호작용을 할 때 다른 개발자와 이야기를 나누거나 github 페이지를 볼 수 있다는 것을 알게 되었다. 정기적으로 누군가가'수정판 4898e'에 대해 말을 할 것이다. 이것은 무엇을 의미하는지 알 수 없고 찾을 수 없다. 왜냐하면 나의 저장소 사본에 있는 모든 해시가 hg 형식이기 때문이다.git 사용자와 나는 우리가 모두 이해하는 수정을 인용할 수 있는 공통된 방법이 없다. 누군가가 아주 좋은 제출 메시지를 쓰지 않는 한.이 문제를 해결하기 위해 나는 세 가지 변화를 했다.
- 현재 작업 디렉터리 상태의git 등 효과 수정번호hg gsummary가 인쇄되어 있거나 hg gsum가 인쇄되어 있습니다.그것은 보기에 다음과 같다.git-rev: 4898e77458a287789dd5f42b51685f84d1fdf431- 현재 일반적인 hg 수정번호, hg 수정 해시 또는 표시된 hg 명령에서 git 수정번호를 드래그하고 사용하면hg up 4898e 위의 예시에서 git 수정을 얻을 수 있습니다.
(작은 알림: hg up 4898e 과 4898e가 접두사로 hg 수정판과git 수정판과 일치한다면 현재 코드는 hg 수정판을 조용히 사용합니다.버전 번호 앞에 'g' 접두사를 붙여서git 버전을 지정할 수 있습니다. 예를 들어 hg up g4898e- 대부분의 변경 집합 정보를 표시하는 명령은 현재 변경 집합의git 수정번호(있을 경우)와 라벨 등을 자동으로 언급합니다.예를 들어 hg sum 지금은 다음과 같이 보입니다.parent: 432:2740d263255c git:4898e77458a2 default/default/master default/master tip master Mercurial 1.8 compatibility for git-rev show branch: default commit: 1832 unknown (clean) update: (current) hg log의 라인은 지금 다음과 같이 보입니다.changeset: 431:9d486e95cf37 git-rev: bd372664271b user: mcc <[email protected]> date: Fri Sep 02 00:49:22 2011 -0700 files: hggit/__init__.py hggit/hgrepo.py description: git-rev code cleanup총체적 목표는git 수정번호를 통해 수정에 대한 주소 찾기를 표시나 책갈피를 통해 주소를 찾는 것과 같이 빈틈없이 하는 것이다.
이 패치는tests/디렉터리에 내가 작성한virtualenv setup이라는 작은 스크립트를 추가합니다.py는virtualenv를 사용합니다. 특정한 버전의mercurial과dulwich를 사용하여mercurial의 일부 자체 포함 복사본을 로컬에 배치합니다.이것은 기존의 테스트 스크립트에 있어서는 쓸데없는 것일 수도 있지만, 나는 그것이 매우 유용하다는 것을 발견했다.나는 이걸로 1.8 버전의 서명을 테스트한다.
이거 듣기 좋아요?나는 두 가지 경고를 알아차렸다.
- 스타일이나 템플릿을 사용하지 않는 경우에만 hg sum/hg 로그 추가가 표시됩니다.나는 이것이 바람직하다고 생각하지만, 나는 변경을 해야 한다고 생각한다. 만약 누군가가 hggit에 대해 알고 있는 템플릿을 만들려고 한다면, 이 템플릿은 현재 보이고 있는 변경 집합의git 버전을 읽는 어떤 방식이 있어야 한다고 생각한다.템플릿 시스템에 대한 이해가 많지 않아서 어떻게 해야 할지 정말 모르겠습니다.
- 내가 잘 모르는 이유로, 이것은 hg outgoing에 적용되지 않는다.git 버전은 알 수 있어도 화면에 나타나지 않습니다.
편집: 여기는 저의mercurial 메일 리스트 게시물입니다. 참고로 관심이 있다면 위에 피투성이가 된 세부 사항을 포함하고 있습니다.http://selenic.com/pipermail/mercurial-devel/2011-September/034064.html

토론 #1

접두사는'g'하나만으로는 부족하다고 생각합니다.예를 들어 버전 G123의 경우 GIT가 존재하는 모든 것.그럴 리가 없어.
다른 접두사를 쓰는 것이 좋을 수도 있고, 더 클 수도 있고, 존재할 수 있지만 실제로는 사용하지 않는 문자를 사용할 수도 있다. ("g."또는 "g 389;")
당신은 어떻게 생각합니까?

토론 #2

여기의git'수정번호'(해시, 나는 줄곧 정확하지 않다)는 16진수 문자열이기 때문에 알파벳 g를 영원히 포함할 수 없다.
나는git:를 표지부 접두사로 사용해 본 적이 있다. 예를 들어git:04cd3이다. 그러나 사칭은 hg에 특별한 의미가 있는 것 같아서 이것은 작용하지 않는다.

토론 #셋

좋아요!나는'모드'를 의식하지 못했다...나도 git:02xyz를 시험해 보았는데 같은 문제를 발견했다.
현재, 변경 사항을 git 서버로 전송하는 것을 막기 위해 몇 가지 문제를 찾고 있지만, 확장 충돌이 있을 것입니다.이따가 조사할게요.

토론 #4

업데이트를 위해 hggit 구글 그룹/메일 리스트에서 이에 대해 토론을 진행했다(나는 그 중에서 상기 12개의 제출을 발표했고 기능에 따라 3개의 패치로 나누었다).나는 결론이'git id에 따라 인용'패치가 후보 패치라고 믿지만 hg sum, hg log 등에서git 수정판을 인쇄하는 방법은 좀 거칠다. 나는 hg 템플릿 기능을 바탕으로git 수정판 정보를 삽입하는 대체 방법을 모색해야 한다.그러나 나는 이 점을 어떻게 해야 할지 몰랐고, 이후에 나는 그것을 연구할 충분한 시간이 없었다.(이와 동시에 나는 방금 나의 개인 기계에 포크를 사용했다......)
Mercurial에 대해 저보다 더 잘 아는 사람이라면 git rev 디스플레이 메커니즘을 사용 템플릿으로 바꾸는 데 도움이 될 것입니다. 변경 사항을 통합하는 데 도움이 될 것이라고 생각합니다.

토론 #5

이 패치들은 진일보한 진전이 있습니까?

토론 #6

진짜가 아니야, 아니야. 이 패치들은 여전히 내 개인 포크에 집적되어 있어(https://bitbucket.org/runhello/hg-git/wiki/Home그러나, 주간과 합병된 어느 순간 수정 기능이 중단됩니다. (sum과 gsum로 수정을 읽을 수 있습니다.)플러그인이 템플릿을 어떻게 사용하는지에 대한 더 많은 정보를 얻기 위해서mercurial 메일 목록을 이메일로 보내야 합니다.

토론 #7

저는 변덕스러운 전문가라고 생각하지 않지만 이 기능을 실현하는 어떤 형식의 작업과 통합을 돕는 데 관심이 있습니다.
템플릿화된 출력을 지원하는 명령에 대해 새 템플릿 키워드를 추가하는 몇 가지 확장 예가 있습니다.
http://hgsubversion.googlecode.com/hg/hgsubversion/init.py(templatekw가 있는 부분 참조)
http://hgsubversion.googlecode.com/hg/hgsubversion/util.py(templatekeywords,svnrevkw 및 관련 코드 참조)
https://bitbucket.org/durin42/hg-remotebranches/src/cec7524db873/hg_remotebranches.py(remotebrancheskw 참조)
템플릿 출력이 지원되지 않은 명령에 대해 템플릿 지원을 추가하는 방법이 있습니다.마터는 이 문제를 어떻게 처리해야 할지에 대한 생각을 발표했다. (다음은 압축 파일 링크)
http://mercurial.markmail.org/message/5rn22eludr5dcyn4
방법에 있어서, 나는 새로운 인자를 주지 않으면, 이전 명령의 출력을 바꾸지 않는 경향이 있다.따라서 git template 키워드를 포함하는 템플릿을 사용하여 'hg log' 를 실행하거나 새로운 '-git' 옵션을 사용하면 좋지만, 파라미터가 없는 'hg log' 가 행동을 바꾸기를 원하지 않습니다.나는 먼저 이런 방법을 시도했다. 'hg identify' 명령을 확장해서 '-git' 옵션을 사용했다. (아래의 패치 대기열에 링크)추가 옵션 조합을 지원하기 위해 더 많은 조정을 사용할 수 있지만, 간단한 경우 (git 수정 id만 있으면) 효과가 충분합니다.
http://mercurial.selenic.com/wiki/CompatibilityRules
https://bitbucket.org/davidmc24/hg-git-queue

토론 #8

이것은 매우 낡아서 더 이상 깨끗하게 합병되지 않는다.만약 이 문제를 다시 처리하고 싶다면 새로운 요청을 열 수 있지만, 너무 많은 작업을 하기 전에 hggit 목록에서 방법을 토론하는 것은 가치가 있다.

좋은 웹페이지 즐겨찾기