전복이 변하지 않은 파일을 커밋하도록 강요하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/206183

  •  03-07-2019
  •  | 
  •  

문제

파일이 변하지 않더라도 파일을 커밋하기를 원합니다. 이것을 할 방법이 있습니까?

도움이 되었습니까?

해결책

파일 내용이 변경되지 않도록하려면 (Johnstok가 제안한대로 공백을 변경할 수는 없음) 파일의 속성 중 하나를 항상 변경할 수 있습니다.

예를 들어.

svn propset dummyproperty 1 yourfile
svn commit yourfile

파일을 변경하지 않고 커밋을 수행합니다.

스페셜 중 하나를 사용하지 않도록하십시오. svn: 속성. 다른 것은 괜찮을 것입니다.


편집 : 다른 많은 포스터는 누군가가 왜이 일을하고 싶어하는지 물었습니다. 아마도이 답변을 표시 한 사람들도 같은 우려를 가지고있었습니다.

나는 원래 포스터에 대해서는 말할 수 없지만, 이것을 본 한 가지 시나리오는 시각적 소스 저장소에서 활동을 전복 저장소와 자동으로 동기화하려고 시도 할 때입니다.

다른 팁

왜 강제 커밋을하고 싶은지 대답하기 위해. 누군가가 잘못되었거나 불분명 한 커밋 메시지를 사용한 경우를 보았습니다. 이 실수를 수정할 수있는 강제 커밋을 수행 할 수 있다면 좋습니다. 그렇게하면 업데이트 된 커밋 메시지가 저장소로 들어가므로 손실되지 않습니다.

나는 불쾌한 파일을 다시 삭제하여 이것을 프리그했습니다. 가장 좋은 방법은 아니며 아마도 개정 내역을 깨뜨 렸을 것입니다. 그러나 그것은 내 목적에 적합했습니다.

그렇게하고 싶은 이유 : 파일은 동일한 소스에서 구축 된 두 개의 실행 파일 중 하나입니다 (다른 #defines 세트 포함). 소스에 대한 사소한 변화는 하나가 바뀌 었음을 의미했지만 하나는 그렇지 않았습니다. 수정 내역에서 실제로 최신 버전으로 업데이트했다고 기록하고 싶었습니다 (변경 사항이 없더라도).

아마도 "파일이 여전히 새로운 개정의 일부가 될 것이라는 Morten Holdflod Møller의 요점은이 표시를 다룰 것이지만, 변경되지 않은 파일의 로그에 그 개정에 대한 의견이 표시되지 않았다고 생각합니다.

텍스트 파일 인 경우 라인 피드와 같은 공백을 추가하십시오.

어떤 이유로 든 가능해야합니다. 어떤 이유로 SVN은 DOC 파일 간의 차이점을 인식하지 못하므로 커밋을 강요하고 싶습니다!

이제 문서를 정적 Dirs에서 SVN으로 옮기고 있습니다. 파일은 ug_v1.2, ug_v1.3 등과 같습니다. 따라서 히스토리를 유지하기 위해서는 1.2를 가져 와서 파일 이름에서 버전을 제거하고 SVN에 추가하여 커밋합니다. 그런 다음 두 번째로 VER을 가져 와서 첫 번째 것에 대해 복사하여 커밋하고 새로운 버전을 커밋하고 싶습니다. 파일 크기 및 생성 날짜 변경 (문서 내부의 내용은 언급되지 않음)이지만 SVN은이 파일이 완벽하게 같은 파일이라고 주장하고 저를 커밋 할 수 있다고 주장합니다. DOC를 수동으로 변경하면 SVN은 다른 것을 본다. 도대체? :>

나는 그것이 가능하다고 생각하지 않지만 우선 왜 그렇게해야합니까? 파일이 변경되지 않으면 커밋되지 않아야합니다.

커밋에서 다른 파일로 그룹화 된 파일을 실제로 원한다면 내부를 사소한 내부로 변경할 수 있습니다 (예 : 공간 추가).

누군가가 변하지 않은 파일을 커밋하려는 이유는 이전 버전의 파일로 되돌리는 방법에 대한 오해 때문입니다.

예를 들어 파일을 되돌릴 수 있습니다 index.html 개정에서 680 과거에 개정으로 업데이트하면 650:

svn update index.html -r 650

그러나 다음과 같은 이유는 문제를 해결하지 못합니다.

svn status -u index.html
        *      650   index.html
Status against revision:    680

SVN은 분명히 index.html이라고 말합니다 원격으로 수정되었습니다 그리고 당신은 그것을 약속 할 수 없습니다. 즉, index.html이 오래되었고 새로운 개정판으로 업데이트되어야한다는 것을 "생각"합니다. 그래서 다음 svn update index.html을 개정으로 다시 가져옵니다 680.

실제로 파일을 되돌리려면 파일을 역순으로 병합해야합니다.

svn merge -r 680:650 index.html

그런 다음 커밋하십시오 svn ci -m "Reverted to r650" index.html

사실, 나는 힘을 커밋 할 이유를 발견했습니다. 이것은 아마도 모범 사례가 아니지만 우리는 truecrypt를 넣습니다 (http://www.truecrypt.org/) 민감한 정보가 포함되어 있으므로 일부 쉘 스크립트에서 긴밀한 보안을 유지해야하기 때문에 SVN의 볼륨. Truecrypt 볼륨이 생성되면 이진 데이터는 무엇을하든 동일하게 유지됩니다. 사실상 볼륨의 내용을 변경할 수 있지만 볼륨은 변경되지 않습니다.

재산을 변경한다고해서 커밋이 강제되지 않습니다.

TortoisesVN 1.4.5, 빌드 10425-32 비트, 2007/08/26 11:14:13

트루 크립트 볼륨과 동일한 문제가 있습니다.

새로운 속성을 추가했습니다 (위의 제안대로) "forcecommit1"을 추가했으며 볼륨 파일을 커밋 할 수있었습니다. 그러나 파일의 내용이 아닌 속성만이 헌신되었습니다.

파일을 제거하고 SVN에 다시 추가했습니다.

명령 줄에서 할 수 있다고 생각 했나요?

svn ci -force <filename>

여기에 확인할 저장소가 없으므로 틀릴 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top