IT박스

Tortoise의 비 재귀 커밋은 어떻게 작동합니까?

itboxs 2020. 8. 4. 07:41
반응형

Tortoise의 비 재귀 커밋은 어떻게 작동합니까?


다른 지점 (완전히 다른 폴더 구조를 가짐)에서 병합 한 SVN 지점 (내 지점)의 사본을 로컬로 체크 아웃했습니다. 따라서 기본적으로 오래된 파일의 삭제와 새 파일의 추가가 많이 있습니다.

Tortoise는 저장소에 (내 지점으로) 병합을 커밋하려고하면

이 커밋은 재귀 적이 지 않으며 커밋을 위해 이동 / 이름이 변경된 폴더가 선택되었습니다. 이러한 이동 / 이름 변경은 항상 저장소에서 재귀 적으로 수행됩니다. 어쨌든 커밋 하시겠습니까?

이 커밋을 진행해도 괜찮습니까? 그렇지 않은 경우 문제가 없도록 어떻게해야합니까?

또한 내가 추가 한 일부 파일의 경우 추가 후 변경했습니다 (이것이 본질에 영향을 미치는 경우).


Google에서 수정 방법을 찾았습니다. 커밋 창에서 F5 키를 누릅니다 ( "경고 팝업"아님).

자세한 내용은 http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2831045 를 참조하십시오.

Ryan J Ollos는 26.08.2011 22:39에 다음과 같이 썼습니다.

몇 달 동안 커밋을 시작할 때 다음 대화 상자가 나타납니다. 병합 후 커밋을 시도 할 때 자주 발생합니다.

그러나 최근에 주목 한 것은 취소하고 수동으로 파일 목록 (F5)을 새로 고치면 커밋을 두 번 시작할 때 메시지가 다시 표시되지 않는다는 것입니다. 커밋은 더 이상 아무런 문제없이 성공한 것으로 보입니다.

커밋 대화 상자는 변경 알림을 위해 백그라운드 스레드에서 작업 복사본을 모니터링합니다. 이러한 알림은 파일이 수정 / 이동 / 이름 변경 / 변경된 경우 OS에서 전송합니다. 이러한 알림이 수신되면 커밋 대화 상자는 먼저 몇 가지 검사를 수행하여 대부분의 알림을 삭제할 수 있습니다. 확인되지 않고 커밋 대화 상자에 표시되지 않은 파일이 변경되었다는 알림이 표시되면 비 재귀 커밋으로 다시 전환됩니다. 예를 들어 다른 편집기에서 파일을 열고 커밋 대화 상자가 열려있는 동안 변경 사항을 저장하면 커밋 대화 상자에서 파일을 확인하지 않아도 해당 파일이 커밋됩니다 (표시되지 않음) F5를 사용하여 대화 상자를 새로 고칠 때까지).

따라서 경고 대화 상자가 자주 표시되면 작업 복사본의 파일을 수정하는 다른 도구 / 앱이 실행 중인지 확인하십시오.

알다시피 F5 키를 누르면 새로 고침 후 대화 상자를 시작한 후 수정 한 파일까지 모두 표시되므로 '비 재귀 플래그'가 재설정됩니다.

스테판


같은 문제가 있었지만 '커밋 무시'로 표시된 파일의 변경 사항을 되돌려 서 해결했습니다.

이 파일을 되 돌리면 tortoisesvn은 병합에서 다른 모든 파일을 커밋 할 수있었습니다.


이 커밋을 진행해도 괜찮습니까?

커밋은 WC- 트리의 모든 변경 사항을 무시하고 루트 수준의 변경 사항 만 반영합니다 (병렬 병합).

처음에는 비 재귀를 체크 아웃 할 때 오류가 발생했습니다. 당신은 할 수 전체 커밋, 좋은을 수행하려고 사용 --depth infinity하는 CLI에서 매개 변수 또는 TortoiseSVN을 GUI에서이 스위치를 찾을 수 있습니다.

svn commit --depth infinity . -m "Merge"

또한 SVN이 추가 된 일부 파일의 경우 추가 후 변경했습니다 (이것이 본질에 영향을 미치는 경우).

필자의 경우에는 메시지가 표시되는 원인이되었으므로 커밋을 위해 해당 파일을 선택 해제했습니다.

몇 개의 파일 만 영향을받는 경우에만 안전하게 작동하는 추악한 솔루션 :

  1. 변경된 파일의 복사본을 만듭니다
  2. 변경된 파일 되돌리기
  3. 병합 / 재 통합 커밋
  4. 변경된 파일을 원래 위치로 다시 복사

자기 자신에 대한 알림 : 대상 (트렁크)이 깨끗한 경우에만 분기를 다시 통합하십시오.


TortoiseSVN이 커밋을 호출하기 전에 일종의 유효성 검사를 수행하는 것처럼 보입니다. 양호하지만 오류 메시지가 명확하지 않습니다.

이 문제에 직면했을 때 svn 명령 줄을 사용하여 커밋했습니다. 폴더 중 하나가 최신이 아니기 때문에 커밋에 실패했습니다. 해당 폴더 만 업데이트 한 후 "svn commit"을 다시 한 번 실행하여 통과했습니다.

편집 : PS : 사용하기 전에 이것을 시도해보기 전에 "커밋시 무시"로 표시된 파일이 없는지 확인하십시오. "커밋 무시"는 거북이마다 다르며 SVN 커밋도 이러한 변경 사항을 선택합니다.


방금 나를 위해 일했기 때문에 이것을 게시 할 것이라고 생각했습니다 ...

이것이 발생한 이유는 내가 만든 새 프로젝트 중 하나의 이름을 부분적으로 바꾸었기 때문이며 어떤 이유로 커밋 화면에서 모두 "누락"으로 표시되기 때문입니다.

SVN이 틱을 넣은 프로젝트와 폴더를 제거하고 다시 새 프로젝트로 다시 넣은 후에 갑자기 모든 "Missing"이 "Added"로 바뀌었고 커밋은 아무것도 경고하지 않고 정상적으로 실행되었습니다. .

도움이 되었기를 바랍니다!


나는이 문제를 보았고 원인은 명백한 이유없이 상태가 추가되지 않은 몇 가지 추가 파일이었습니다. 상위 폴더가 '추가됨'으로 올바르게 표시되었지만 '정상'이었습니다. 나는 그 '정상적인'변화를 되 돌렸다가 수동으로 다시했다. 이렇게하면 추가 된 각 항목이 커밋 목록에 두 번 표시되지만 오류가 해결되고 모든 것이 작동하는 것처럼 보입니다.

다른 답변에서와 같이 커밋 무시와 관련이 없으며 TortoiseSVN의 버그처럼 보였습니다.


The problem could be, that your mergeinfo is deleted by someone or automatically, because the infos moved up in the tree. If you are gonna merge them in again, it will work for the moment. But all others will get problems with their not merged branches. SVN will loose some code and merge already submitted code again.

So reverting those files and changing them again could work, but you should not just commit the changes.


I just had the same issue. Instead of selecting all the files, I clicked on versioned and everything worked well. In my case, the option versioned selected all the files, so everything is ok now.


i don't know a option for tortoisesvn but u could use the command line

svn commit --non-recursive [folder]

thats sould work just as u like it to work greeings

참고URL : https://stackoverflow.com/questions/13010012/how-does-tortoises-non-recursive-commit-work

반응형