2011-12-27 3 views
13

나는 다음과 같이 SVN에서 일부 파일을 편집 : 이제SVN : 커밋시 수정 된 파일을 무시하는 방법?

$svn st 
M a 
M b 
... 

, 내가 SVN 내 변경 사항을 적용하려면, 어떤 이유로, 내가 파일 b을 커밋하고 싶지 않아, 어떤 빠른 방법이 나 수정 된 파일을 무시하는 명령 b?


마지막으로 @yzucker Solution 1, cp, revert 및 commit을 사용합니다. 변경 목록이 너무 무거워서 모두에게 감사드립니다.

답변

7

아아, 성가신 변경 사항이 많은 파일을 커밋하면 문제가 무시됩니다.

용액 1 : 복사 되돌리고 커밋

$cp b /tmp/ 
$svn revert b 
$svn commit -m 'commit message' 
$mv /tmp/b ./ 

해결책 2 복사본은 제 2 접근법은 사용자가 소개 때문에 덜 바람직하다

$cp b /tmp/ 
$svn commit -m 'commit message' 
$svn merge -c -{new revision} b 
$svn commit b -m 'revert message for b' 
$cp /tmp/b ./b 

B 재회, B의 효과를 역으로 커밋 svn의 코드가 깨졌습니다.

+1

좋은 생각, 이것은 Subversion 자체의 기능이어야합니다. 파일이 커밋되지 않도록하는 플래그 ('-X'를 호출)가 있어야합니다. – mliebelt

3

하나의 파일 만 제외하고 다른 모든 파일을 포함 할 수있는 옵션이 있다고 생각하지 않습니다. 예를 들어, 커밋 할 파일 만 포함시킬 수 있습니다.

svn co a -m "Only commit a" 

그런 다음 b를 제외합니다. 끝에있는 예제가 포함 된 documentation of the command을 참조하십시오.

또 다른 옵션은 changelists을 사용할 수 있지만, 더 무거운 ... 파일 b이 이미 저장소에 추가 된 경우

+1

이 목적을 위해 (명령 행을 통하지 않고) 변경 목록을 사용합니다. –

+0

명시 적으로 제외 할 파일을 정의하는 변경 목록이있는 경우 옵션이 될 수 있습니다. 그러나 종종 변경 목록 (changelist가 아닌)에서 많은 파일이 변경되고 커밋하는 데 1 * * * 만 필요합니다 ... – mliebelt

2

, 더 이상 무시할 수 없습니다. 이 파일을 지우고 커밋하고 다시 만들고 다음과 같이 ignore 속성을 설정해야합니다.

svn propset svn:ignore b . 

마지막 점은 현재 폴더를 의미합니다.

당신이 명령을 커밋 만이 커밋에서 파일을 무시에서 명시 적으로 자신의 이름을 입력합니다

ac는, d 당신이 저지하고자하는 파일입니다

svn co a c d 

. 이 간단한 예제 세션에서와 같이

+0

마지막 명령을'svn ci a c d'로해야합니까? 이것은 해결책입니다, 감사합니다. – fannheyward

15

당신은 새로운 Subverion 클라이언트의 Changelist 기능을 사용할 수 있습니다 창에

$ svn st 
M  a 
M  b 

$ svn cl task1 a 
$ svn cl task2 b 

$ svn st 
--- Changelist 'task1': 
M  a 
--- Changelist 'task2': 
M  b 

$ svn ci --cl task1 -m "checking in only task 1 stuff" 
Sending  a 
Committed revision 11. 
+0

svn 버전이란 무엇입니까? –

2

당신이 GUI 클라이언트 TortoiseSVN를 사용하고 단지에만 필요 확인란을 선택할 수 있습니다.

관련 문제