이 질문의 변형이 이전에 요청되었지만 다른 팀 구성원을 방해하는 문제는 언급되지 않은 것처럼 보입니다. 기존 게시물 (How to "unversion" a file in either svn and/or git 참조)에서 대답은 일반적으로 svn rm FILE
또는 svn rm --keep-local FILE
으로 실행 한 다음 원할 경우 svn:ignore
속성을 설정합니다. 지난 20 분 동안이 작업을하면서 놀았습니다 (한 곳에서 파일을 삭제 한 다음 다른 곳에서 파일을 삭제하는 등). 다음은 내가 찾은 것입니다 (SVN 1.6.16을 사용하고 있습니다) :SVN에서 파일을 정상적으로 해제하는 방법 (팀 구성원을 방해하지 않고)?
우선 --keep-local 플래그는 업데이트하려는 다른 모든 사람들에게 어떤 영향을 미치지 않습니다. 나중에 저장소. 그 (것)들에게 당신이 방금 svn delete
정규식을했을 때와 똑같이 보입니다. (내가 본 subversion 문서 중 아무 것도 이것을 명시 적으로 언급하지 않았습니다. 당신이 여전히 svn delete
작업을하고 있고 "로컬 유지"가 현지 측에 영향을 미치지 만, 필자에게 분명하지는 않다).
그래서 이가지 경우가 있습니다 - 1. 팀 구성원 A는 팀 구성원 B 팀 멤버 A는 파일 이가에서 커밋되지 않은 로컬 변경 사항이 한 팀 멤버 B를 삭제 또는 2. 로컬 수정 없었다 파일을 삭제
.1에서 삭제가 발생한 후 B의 파일이 삭제되었습니다. 그는 이제 스스로 복구해야합니다 (예 : svn merge -rHEAD:XXX FILE; svn revert FILE
). FILE 버전 XXX을 작업 디렉토리에 다시 가져 와서 다음 커밋에서 다시 커밋하지 않아야합니다.
2에서 B는 업데이트시 트리 충돌을보고, FILE의 상태가 A + C
이고 그 아래에 "로컬 편집, 업데이트시 수신 삭제"메시지가 있습니다. 이 시점에서 권장 솔루션이 무엇인지 정확히 알지 못합니다. 내가 한 것은 파일을 다른 곳으로 복사하는 것 뿐이므로 안전성을 위해 svn revert FILE
을 실행했습니다. FILE이 작업 디렉토리 에 아직 버전 화되어 있지 않고의 모든 로컬 수정 사항을 그대로 유지하기 때문에 불필요한 결과가 발생했습니다. 그러나 다른 시나리오에서는 내 커밋되지 않은 변경 사항이 svn revert
에 의해 지워졌 기 때문에이 사실을 얼마나 신뢰할 수 있는지 알 수 없습니다.
TL; DR : 그것은 정말되지 않은 버전의 유일한 방법 SVN에서 파일이 팀에 다른 사람의 작업 디렉토리에서 삭제하고이 스스로를 검색 할 수 있도록하는 것입니다 경우? --keep-local을 잘못 사용하고 있습니까? 아니면 다른 유사한 옵션이 없습니까? (-> 사용이 삭제 목록 옵션을 무시하는 추가 TortoiseSVN을 쉽게) 그 커밋
워크 플로우가 문제 일 수 있다고 생각합니다. 왜 파일을 "해제"하시겠습니까? 정의에 따르면, 버전 제어 시스템은 알고있는 파일의 버전 만 추적 할 수 있습니다. 그 파일을 repo에서 제거하면 논리 복사본은 작업 복사본에서도 제거됩니다. 이 작업을 수행 할 수있는 다른 VCS의 예가 있습니까? – richo
구성 파일은 어떻게됩니까? (즉, Eclipse .project 파일). 팀원 모두가 필요하지만 기계마다 약간 다릅니다. 따라서 버전 관리가되어서는 안되지만 우연히 발생합니다. – danny
나는'svn mv'ing하고 그 경우에 메모를 전달할 것이다. – richo