2010-07-12 2 views
2

파일 A, B, C가있는 프로젝트에서 작업하고 있다고 가정 해 봅시다. A와 B를 수정하여 기능을 추가하는 중반에 뭔가 정리가 필요하다는 것을 알게됩니다. 상황에 따라 청소를 수행하기 위해 기능 작업을 중단하는 것이 가장 좋습니다. 여기에는 A, B 및 C가 변경됩니다.Mercurial/SVN : 하나의 차이 집합에서 다중 커밋?

이 기능을 모두 수행 한 후에 코드를 확인하고 싶습니다. 변경 사항에는 두 가지가 있습니다. 즉, 기능을 추가하는 변경 사항과 정리를위한 변경 사항이 있습니다. 그들은 어떤 방식으로도 충돌하지 않습니다. 깨끗한 레포 기록을 위해 이러한 변경 사항을 별도로 처리 할 수 ​​있습니까?

또는 정리가 끝나자 마자 체크인을하기로 결정했지만 A와 B의 중간에 완료된 기능을 체크인하고 싶지 않은 경우 어떻게해야합니까?

Mercurial 또는 SVN에서이 작업을 수행 할 수 있는지 확실하지 않지만 학습에 관심이 있습니다. (TortoiseHg는?)

답변

4

예, Mercurial의 hg record으로이 작업을 수행 할 수 있습니다. 확장 기능으로 간주되지만 일반 패키지와 함께 배포됩니다. 기본적으로이 명령을 실행하면 각 파일에 대해 묻습니다 (여기에서 아무것도 커밋 하시겠습니까?). 네가 yes라고 말하면, 당신은 각각의 큰 덩어리 (줄의 그룹)를 커밋하고 싶은지 물어 봅니다. 특정 파일에서도 실행할 수 있습니다. 예 :

hg record A B C 

그런 경우 다른 파일에 대한 변경 사항을 묻지 않습니다. 각 덩어리에 대한

옵션은 다음과 같습니다

y - record this change 
n - skip this change 

s - skip remaining changes to this file 
f - record remaining changes to this file 

d - done, skip remaining changes and files 
a - record all changes to all remaining files 
q - quit, recording no changes 

? - display help 

편집 : TortoiseHg은 기본적으로 record의 GUI에 해당합니다 Change Selection라는 통합 된 기능을 가지고 있습니다.

1

확장자는 커밋 할 보류중인 변경 사항을 정확하게 선택할 수있는 멋진 curses 인터페이스를 제공합니다.

+0

흥미 롭습니다. TortoiseHg와 어떻게 통합됩니까? –

+0

@Rosarch : 그렇지 않습니다. – sth