2012-09-10 1 views
2

hg 이식의 실제 날짜는 어떻게 알 수 있습니까? 9월 7일에서 여러 파일은 명령으로 이식 : 년 9 월 10 일에의욕적 인 통나무 질문

hg transplant -b <branch> --log abcdefg 

이 명령 hg log --date "2012-09-07 to 2012-09-10"이 실행되었다. 그러나이 날짜에는 8 월에 있었던 상위 커밋 날짜가 있기 때문에 이식 된 파일의 변경 집합이 표시되지 않습니다.

장기 이식을 보여줄 날짜 범위가있는 지점에서 어떻게 hg 로그 (또는 무엇인가)를 할 수 있습니까?

답변

2

이 시점에서 운이 좋지 않습니다. 이는 transplant 워크 플로의 표준 부분이 아닌 이유 중 하나입니다. 그것 (그리고 git cherry-pick) 누군가가 틀린 지점에서 약간의 일을했을 때 괜찮지 만 정상적인 사용에는 필요하지 않아야합니다. merge 명령을 사용하면 한 지점에서 다른 지점으로 변경하는 것이 더 바람직합니다. 수정 가능한 가장 빠른 시점에 버그를 수정하는 경우 hg merge은 지점을 가져 오는 지점에 안전하게 가져 가야합니다. 다른 변화를 가져 오지 않고 존재합니다. 2010 Joel of Software/Kiln roadshow 비디오에는 수정을위한 올바른 부모를 선택하는 것이 merge 항상 더 나은 선택이되는 이유에 대한 훌륭한 설명이 포함되어 있습니다. transplant보다 여전히 더 나은하지만 merge

매우 좋은하지 당신이 이동하고있는 변경 집합의 날짜를 무시하려는 경우 --currentdate 인수를 취하는 graft 명령입니다.

0

나는 그렇게 생각하지 않습니다. 변경 집합이 커밋 된 후에는 돌아가서 변경 사항을 변경할 수 없습니다. transplant은 원래 변경 집합 타임 스탬프를 유지/사용합니다.

템플릿 필드 extras을 사용하면 저장소의 모든 이식을 표시/찾을 수 있습니다. 나는 이식 된 체인지 세트를 믿는다. 원래 변경 집합의 체인지 ID로 extrassource 키/값 쌍이있을 것이다.

$ hg log --template '{extras}' 

다음 출력을 grep에 전달하여 이식을받을 수 있습니다.

관련 문제