IT TIP

TortoiseSVN에 보관 하시겠습니까?

itqueen 2020. 12. 8. 20:35
반응형

TortoiseSVN에 보관 하시겠습니까?


현재 회사에서 TFS에서 SVN (TortoiseSVN)으로 이전했습니다. TFS의 "보류"기능이 정말 그립습니다. SVN으로 "보류"하는 방법에 대한 다양한 기사를 읽었지만 작업을 "보류"하는 데 매우 간단한 경험을 제공하는 것은 읽지 않았습니다.

이상적으로는 TortoiseSVN 컨텍스트 메뉴에 "Shelve"및 "Unshelve"와 같은 추가 항목을 추가하고 싶습니다. "Shelve"는 현재 shelve-set을 제거하고 사용자 옵션에 정의 된 적절한 경로 아래에 작업 디렉토리를 업로드합니다. "Unshelve"는 세트를 작업 복사본과 병합합니다.

이와 같은 것이 존재합니까? 누구든지 GUI에서이 기능을 "해킹"하는 방법을 제안 할 수 있습니까?

참고 : 다음 링크는 내가 찾고 있던 사용자 경험을 실제로 얻지 못합니다.

선반 Subversion

TFS Shelve의 가장 큰 장점 중 하나는 사용이 얼마나 쉬운 지입니다.


SVN의 Shelving이 버전 1.10과 함께 출시되기 시작했습니다. 출시 정보를 참조하세요.


나는 SVN이이 기능을 서버 제품에 내장하고 있다고 생각하지 않습니다. 나는 또한 TortoiseSVN을 포함하여 내가 사용한 어떤 클라이언트에서도 이와 같은 것이 에뮬레이션되었다고 믿지 않습니다.

이 문제를 해결하기 위해 Git 또는 Mercurial 과 같은 DVCS를 사용 하여 콘텐츠를 SVN으로 다시 푸시하기 전에 로컬에서 분기 / 병합 / 보류 할 수 있도록했습니다. 틀림없이 약간의 클러 지이지만 정말 잘 작동합니다.


SVN 브랜치가 작동하는 방식을 이해하고 있다면 SVN에서 Shelve를 에뮬레이션하는 것은 쉬운 일이 아닙니다.

  1. 저장소 (서버)에 브랜치 생성
  2. 로컬 사본을 그것으로 전환하십시오
  3. 변경 사항을 새 브랜치에 커밋
  4. 로컬 복사본을 다시 트렁크로 전환

보류 된 변경 사항 ( "비 보류")으로 돌아갈 준비가되면 선반 브랜치를 로컬 사본에 다시 병합하기 만하면됩니다.

명령 줄 SVN이나 Tortoise SVN을 잘 모르는 경우 Tortoise SVN에서 수행하는 방법에 대한 매우 상세한 단계별 지침이 있습니다.

  1. 작업 복사본을 최신 버전의 트렁크로 업데이트하려면 "SVN 업데이트"를 수행하십시오. 이렇게하면 로컬 복사본과 트렁크 간의 유일한 차이점은 변경 사항입니다.
  2. 컨텍스트 메뉴에서 "Branch / Tag"를 선택하십시오.
  3. "저장소의 HEAD 버전"옵션이 기본적으로 선택됩니다. 그것을 유지하십시오.
  4. "To Url"을 변경하여 분기 이름을 지정하십시오. http://server/repository/project1/branches/shelf1
  5. "작업 복사본을 새 분기 / 태그로 전환"확인란을 선택합니다.
  6. 확인을 클릭하여 분기를 만들고 전환하십시오.
  7. "SVN Commit ..."을 수행하고 새로 생성 된 브랜치에 변경 사항을 커밋합니다.
  8. 컨텍스트 메뉴에서 "Switch ..."를 선택합니다.
  9. "To URL"을 트렁크 URL로 변경합니다. 예 : http://server/repository/project1/trunk
  10. 확인을 클릭하여 트렁크로 다시 전환하십시오.

더 자세한 내용과 위의 명령 줄에 해당하는 내용은이 링크를 참조하십시오.
Subversion의 Shelves


TortoiseSVN 1.10이제 지원 shelving: https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-shelving.html


또 다른 옵션은 TortoiseSvn의 'Create patch'기능을 사용하여 패치 파일을 만들고 변경 사항을 되 돌리는 것입니다. 나중에 패치 파일을 다시 적용하여 원래 위치로 돌아갈 수 있습니다.

하지만 작업 복사본 개정판을 업데이트해야하는 경우 일부 고정 병합으로 끝날 수 있습니다.


SVN은 선반 https://subversion.apache.org/docs/release-notes/1.11.html#shelving 을 업그레이드했습니다.

보류 할 수있는 변경의 종류는 아직 지원되지 않는 다음 종류를 제외하고 파일 및 속성에 대한 커밋 가능한 변경입니다.

  • 복사 및 이동
  • 디렉토리 생성 및 삭제

DVCS를 사용할 수 있지만 어떤면에서 이것은 엉터리입니다. DVCS의 'Shelving'은 변경 사항을 로컬로만 저장합니다. 추가 작업으로 작업을 중단 할 경우 롤백 할 작업을 체크 포인트하려는 경우에만 유용하지만, 작업을 서버에 저장하는 것이 좋습니다.

명시적인 shelve 명령없이 SVN에서이 작업을 수행하는 한 가지 방법은 작업 복사본을 다른 svn 위치로 전환하고 기본 저장소 대신 거기에서 커밋하는 것입니다. 이것은 사실상 임시 브랜치를 만들고 작업 기간 동안 작업하는 것과 같습니다. 로컬 수정 사항이 유지되므로 전환 할 때 SVN이 자동으로 수행하므로 병합 할 필요조차 없을 것입니다.

안타깝게도 존재하지 않는 위치로 전환 할 수 없으므로 처음으로이 작업을 수행 할 때 '지점'을 만들어야합니다. 모든 것이 자동화 될 수 있다고 생각합니다.

참고 URL : https://stackoverflow.com/questions/8496/shelve-in-tortoisesvn

반응형