2013-06-04 1 views
9

개발자가 트렁크에서 생성 된 분기의 버그를 수정합니다. 그런 다음 지점을 테스트하고 다시 트렁크로 재 통합합니다.명령 줄에서만 내용 변경 내용을 커밋하지 않는 방법은 무엇입니까?

요즘 나는 또한 속성 변경을 저지르고 있습니다. 트렁크에 반복해서 커밋하는 세 개의 파일이 있습니다. 나는 svn을 사용하는 리비전 사이의 파일 내용을 비교했고 그것들은 동일합니다. 일부 속성 만 변경되었습니다.

Q1 : 그래서 나는 내가 svn st을 할 경우에만 첫 번째 열에 M이 명령 행 전용 파일에서 커밋 할 수있는 방법이 있습니까?

Q2 : 트렁크를 청소할 수있는 방법이나이 세 파일을 반복해서 삭제하는 방법이 있습니까?

---- 세인트 SVN 편집 날

M  . 
M  controllers/database/udfs/searchForNameContSrch.sql 
M  controllers/eduMoodleInterface 
M  controllers/main 
M  controllers/teaching 
M  lib/utils/EduMail.php 
M  lib/views/learning/progress/reverse_template_converter.php 
M  pages/carer/carer_basepage.php 
M  pages/common/contact_list_detail_basepage.php 
M  pages/contact/contact_basepage.php 
M  pages/staff/staff_basepage.php 
M  pages/student/student_basepage.php 

전류 솔루션을 제공하는 두 번째 컬럼에 투입하기 전에 M이 파일을 되돌릴 수있다. 그것은 효과가 있지만 시간이 많이 걸립니다. 다른 생각?

+0

이 아마 부정 행위와 해답이 될 너무 세련되고, 그러나 나는 때때로 vi에 원하는 파일을 복사하여 붙여 넣기하고, 초기 문자 열을 제거한 다음 모든 파일 이름이 같은 줄에 올 때까지 shift-J를 누른 다음 "svn ci -mBlahBlah"를 앞에 추가합니다. 마지막으로 쉘 명령으로 해당 행을 실행합니다. –

+0

:-) 그것은 커밋하고 싶지 않은 파일을 되 돌리는 것과 같은 종류입니다. 그들은 저 지르지 않아야합니다. 어쨌든 우리는 그 속성이 왜 바뀌 었는지 알지 못합니다. – Radek

+0

Q1 : Tortoise를 사용하면 그런 종류의 일을 할 수 있습니다. 체크 박스에서 커밋 할 파일을 선택하십시오. Q2 : Tortoise가 Q1에 응답하는 것과 동일한 도구로 여러 파일을 가지고 있다면이 도구로 정리할 수 있습니다. –

답변

7

속성을 무시하고 무시하는 것보다 속성을 처리하고 그 문제를 해결하는 경향이 있습니다. 즉,이 대답의 마지막에는 리눅스에 있다면 되돌리기 프로세스의 속도를 높일 수있는 하나의 라이너가 있습니다.

이 답변을 위해 한 파일 (window.c)에 속성을 설정하고 다른 파일 (window.h)을 수정했습니다. 속성을 사용 svn을

svn status 
M  window.c 
M  window.h 

주요 명령은 다음과 같습니다

svn propset answer 42 window.c 
property 'answer' set on 'window.c' 

당신은 아마 이것을 사용하고자하지 않는 42 가치를 파일 window.c에 인적 또는 '대답'을 설정합니다.

svn proplist window.c 
Properties on 'window.c': 
    svn:keywords 
    svn:eol-style 
    answer 

파일의 모든 속성 (값 제외)을 나열합니다.

svn propget answer window.c 
42 

특정 속성의 값을 가져옵니다.

svn propedit answer window.c 
Set new value for property 'answer' on 'window.c' 

내 컴퓨터에서 모든 요소가 나노가되는 편집기를 열고 속성을 편집 한 다음 지정된 파일에 설정합니다.

svn propdel answer window.c 
property 'answer' deleted from 'window.c'. 

지정된 속성을 삭제합니다 (내 문제는 해결되지 않음).

또한 속성이 다른 어떤 찾기 위해 svn diff을 수행 할 수 있습니다

svn diff window.c 
Index: window.c 
=================================================================== 
--- window.c (revision 35712) 
+++ window.c (working copy) 

Property changes on: window.c 
___________________________________________________________________ 
Added: answer 
## -0,0 +1 ## 
+42 
\ No newline at end of property 

을 이것은 기본적으로 여기에 유일한 변화는 속성 '대답'이 추가되었습니다 값 (42) (도없고 줄 바꿈으로이라고 말한다).

svn diff controllers/database/udfs/searchForNameContSrch.sql 
svn diff controllers/main 

변화 및 참조 된 속성에 대한 구글을 가지고 당신이 그것을 설정하는 것입니다 어떤 도구를 알아낼 수있는 경우 : 내가 svn diff로 시작을하고 변경된 내용 알아 줄 것을 그래서

그것을 끄십시오.

svn propdelete을 사용하여 속성을 버리려고해도 도움이 될 것 같지 않습니다. 그 실패

- 빠른 되돌리기 스크립트 그렇지 않으면

, 당신이 리눅스를 사용하는 경우,이 라이너 속성 수정을 가진 파일이 아닌 내용 수정을 되돌아갑니다.

처음 비회원 업데이트를 시도해보십시오. 예,!?!!? 인

svn status | grep "^ M" | sed "s/^.\{8\}//" | while read rv; do svn revert $rv; done 

:

  • SVN 상태

  • 파이프를 그렙 및 'M'(그래서 'MM'를 무시 시작 ONLY 라인 필터로 - 중요).

  • sed를 통해 pipe하고 처음 8 자 (파일 이름 앞의 모든 상태 열)를 삭제하십시오.

  • 파이프를 루프에 넣고 주어진 파일 이름을 되 돌리십시오. 여기

는 행동에 : 당신은 당신이을 트렁크 다시 재 통합 때 이러한 속성이 변경 쓴

svn status 
M  window.c 
M  window.h 
svn status | grep "^ M" | sed "s/^.\{8\}//" | while read rv; do svn revert $rv; done 
Reverted 'window.c' 
svn status 
M  window.h 
+0

어떤 속성이 변경되고 있는지 확인할 수 있기를 바랍니다. 흥미로운 것 같습니다. –

1

, 그래서 나는 svn:mergeinfo입니다 변경 속성을 것 같아요,하지만 당신은 필요한 것 그것을 확인하십시오.

위에서 가정하면 다음 소스를보고 mergeinfo이 무엇이며 왜 실제로 을 수행해야합니까?은 변경 사항을 적용하려고합니다. 또한 이러한 속성을 정리하고 더 엄격한 병합 프로세스를 사용하면 다시 나타나지 않게 할 수 있습니다. 즉, 항상 트렁크/분기 루트 디렉터리에서 병합을 실행하십시오. 이렇게하면 mergeinfo은 개별 파일이 아닌 해당 디렉토리에만 기록됩니다. 이것은 주위에 흩어져 mergeinfo와 함께 귀하의 레포를 오염시키지 않는 이점이 있으며, 또한 커밋 diffs 청소기.

출처 :

관련 문제