문제

주어진 경우 나 두 개의 독립적인 변화 파일:예를 들어.추가하는 새로운 방법과 변경 다른 방법이다.

저는 종종을 원하지 않을 commit 모두 변경 커밋하지만, 두 개의 독립 commits.

에 git 을 사용하는 것이 가 대화형 모드git add(1) 분할 헝크 작은 것들로:

 git add --patch

무엇을 할 수있는 가장 쉬운 방법이 파괴?(아마도를 사용하여 Eclipse plug-in)

업데이트:
일에 대한 Git, 라이언은 그것: "얽힌 복사본으로 작업 문제입니다."

도움이 되었습니까?

해결책

Git-svn 만들 수 있습니다 로컬 GIT 저장소의 원격 SVN 저장소 작업과 함께 사용하여 전체 GIT 기능 세트(부분을 포함 커밋)및 그들을 모두 밀어 다시 SVN 장합니다.

git-svn(1)

다른 팁

거북이 1.8SVN 지금 지원 이와 함께 그것은"복원 후 commit"기능이 있습니다.이할 수 있 파일을 편집 할 모든의 편집이 되는 취소 후 commit

설명에 따:

커밋하는 부분만 파일과 관련되는 하나의 특정 문제점:

  1. 에서 커밋 대화,마우스 오른쪽 버튼으로 클릭 파일을 선택하고,"복원 후 commit"
  2. 에서 파일을 편집하어Tortoisemerge 를 갖습:변경 사항을 취소는 당신을 원하지 않을 commit 직
  3. 파일 저장
  4. 커미 파일

내가 이를 사용하여 TortoiseSVN.

내장에서 병합 유틸리티를 사용 할 수 있습니다 보는 사이의 비교가 저장소 버전의 작동을 복사본입니다.

백업 만들기 의 기능을 비교 유틸리티

  1. Go 투입으로 파일 당신이하는 모든 변경합니다.
  2. 에서 commit 창 파일을 두 번 클릭하여 표시 diff.
  3. 에 차이 설정한 옵션을 클릭합 원본 파일 백업.
  4. 오른쪽 클릭하여 변경을 원하지 않는,그리고 선택 사용 사용하는 다른 텍스트를 블록.
  5. 저장 비교 정확히 한 번.백업이 덮어쓸 수 있는 각 시간을 절약할 수 있습니다.이런 이유로 당신은 단지 저장하고 싶다.
  6. 투입 변경합니다.
  7. 덮어쓰기는 원본으로 만들어집니다.bak 파일(는 귀하의 모든 원래의 변경).
  8. 커미 파일입니다.

이제 모든 변경 사항을 사용하여 두 가지 별도의 커밋.

을 사용하여 시험 svn diff > out.patch 에 복사하는 out.patch 파일 out.patch.addout.patch.modify

가 있는 경우에만 작동 패치 파일 되돌리는 원래 사용하여 파일 svn revert out.c.

편집 패치 파일을 손으로 그렇게 그들은 단지 포함 어 놓 에 대한 추가하거나 수정.에 적용하는 원래 사용하여 파일 patch 명령을 테스트하는 경우 추가했,다음 svn commit 니다.

씻고 씻어에 대해서도 반복 out.patch.modify 패치입니다.

는 경우는 변경은 별도로 파일에서 당신의 초기 질문에 명시된 추가하는 새로운 방법,변경되는 기존의 방법-이

이것은 매우 지루한 솔루션을 확신하지 않지만 당신이해야 하는 어떤 이유가 있는 별도의 커밋.

당신은 또한 확인 수있는 여러 작업의 사본은 동일한 원본을 적용에 대하여 작동:

svn co http://location/repository methodAdd

svn co http://location/repository methodModify

svn up 고 테스트를 확인든 것이 잘되어 있다는 것입니다.

이것은 사용하여 가능한 TortoiseSvn(윈도우)이후 v1.8.

4.4.1.커미 대화

당신의 작업 사본을 최신으로 유지되고 있으며 충돌이 없이,당신이 범죄를 저지르지 준비가 원하는 대로 변경합니다.선택 파일 및/또는 폴더를 적용할 다음 TortoiseSVN→Commit....

<snip>

4.4.3.Commit 만 부품의 파

때때로 당신은 당신만 원하 commit 부품의 변경 내용은 파일입니다.이러한 상황은 일반적으로 발생하는 경우에는 뭔가 하지만 그는 긴급한 수정 요구 투입되기 위하여,그리고는 해결 될 일이 동일한 파일에서 당신 에 노력하고 있습니다.

에서 오른쪽 클릭하여 파일을 사용하여 컨텍스트 메뉴→복원 후에는다.이 파일의 복사본으로 그것입니다.다음을 편집할 수 있습니다 파일,예를 들어,에 tortoisemerge 를 갖습고 모든 변경 사항을 취소하고 싶지 않은 다.을 저장한 후에 그 변경 당신을 투입할 수 있는 파일입니다.

후 commit 이 완료되면,파일의 복사본은원 자동으로,그리고 당신은 파일이 귀하의 모든 수정 지 않은 헌다.

리눅스에서 구입할 http://webstaff.itn.liu.se/~karlu20/div/blog/2013-05-31_SVNPartialCommit.php 니다.시도하지 않은 그것을 자신을,하지만.

내가 이렇게 하려면 사용:

  • 내 편집기(내가 사용하는 vim),파일을 편집하는 단 하나의 변화를 표시
  • 파일을 저장합니다(하지만 종료하지 않는 편집기)
  • Commit 변경된 파일을 svn
  • 칠"취소"편집기에서 충분한 시간을 위한 두 번째는 설정의 변경 다시 표시
  • 파일을 다시 저장
  • 커미는 두 번째의 설정을 변경합니다.

이것은 단순한 접근제로 한 세트의 변경 내용은 개인 정보 보호 정책을 확인을 취소합니다.더 복잡한 상황에서,나를 줄 것이라고 commit 모두 변경 사항에 대한 걱정없이다.

이제는 내가 자식을 사용하,이은 뭔가가 나지 않을 것을 다시 수행해야!

내가 사용하는 로컬 darcs repo,하거나 병합에서 변경습니다.병합(opendiff 열 FileMerge,병합 프로그램을 함께 제공되는 Xcode;대체로 좋아하는 병합 공구):

cp file file.new
svn revert file
opendiff file.new file -merge file

병합 관련 변경 사항을 저장합 병합,종료 병합 프로그램

svn ci -m 'first hunk' file
mv file.new file
svn ci -m 'second hunk' file

하나 이상일 경우에는 관련이 없는 덩어리에서 파일,헹구기 및 반복한다(그러나 당신은 왜 이렇게 오랫동안 기다리하기 전에?!)

또한,당신이 알고 있는 경우 git 을 사용할 수 있습니다 git-svn 을 유지하는 지역 git repo 와 동기화하는 커밋 svn 마스터 서버훌륭한 작품에서 제한된 경험이다.

VisualSVN Visual Studio.이 최신 6.1 릴리스 소개 QuickCommit 기능입니다.할 수 있는 부분적으로 선택한의 변화를 사용하여 파일을 새로운 Commit 이 블록행 선택 컨텍스트 메뉴 명령에는 Visual Studio 편집기입니다.

enter image description here

  1. 열려있는 모든 파일을 원하는 분할에서 편집기의 선택
  2. 를 사용하여 다른 도구 세트(에서 승리,사용하여 스파이크의 제안(이전 버전))다시 번째 설정
  3. Commit
  4. 로 돌아가기 편집기의 선택과 모든 파일을 저장

그것은 작은 위험한 이 스파이크 전체 제안하지만 쉽게 할 수 있습니다.또한 당신이 그것을 시도해야합에서 다른 무언가 처음으로 일부 편집기를 거부하를 저장하는 파일이 변경되었 아래에서 그들지 않으면 당신은 다시는 파일(을 잃는 귀하의 모든 변경)

내 생각에 더 쉽게 옵션을 생성하는 파일을 비교하고,복귀 등을 것을 두 사본의 저장소를 확인하고 사용한 시각적 차이와 같은 도구를 DeltaWalker 복사하는 덩이를 다른 하나에서.

첫 번째 복사 하나가 될 것입 당신은 실제로 작업의,그리고 두 번째는 것이 목적입니다.일단 당신이 변하는 첫 번째 복사할 수 있습니다 섹션 중 하나 이상의 두 번째,commit,복사 또 다른 섹션,커밋,etc.

  1. 모두 복사한 파일을 수정 관련하여 백업 복사본입니다.
  2. 을 만들의 패치를 사용하여 작동 상태 svn diff.
  3. 되돌리기를 사용하여 파일 svn revert.
  4. 다시 적용하는 부분의 패치하려는 커밋거나 사용 patch 도구,또는 수동으로 편집 또는 어떤 것이다.
  5. 실행 diff 나중에 비교하는 작업 사본으로 백업해야 합 적용 패치-부품습니다.
  6. 구축하고 테스트합니다.
  7. 다.
  8. 복사하고 백업 사본에 다시 귀하의 저장소를 확인합니다.
  9. 반복 2.(지 1.!) 완료 할 때까지.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top