문제

파일을 이동할 때 old.package to new.package 나는 두 가지 일이 일어나기를 원합니다.

  1. 새 패키지가 사용되도록 해당 클래스 (프로젝트의 모든 파일에서)에 대한 모든 참조를 업데이트하십시오.
  2. svn move old/package/Foo.java new/package/Foo.java

나는 이클립스 가니메데에서 파괴적인 것을 사용합니다. 파일을 한 패키지에서 다른 패키지로 드래그하면 모든 참조가 업데이트되고 파일이 파일 시스템에서 이동됩니다. 그러나 SVN은 이것을 알지 못합니다 svn move old/package/foo.java new/package/Foo.java 명령은 (명백히) 작동하지 않습니다 old/package/Foo.java 존재하지 않습니다 (Eclipse가 이미 이동했기 때문에).

Eclipse가 리팩토링되지만 SVN을 사용하여 파일 시스템에서 파일을 이동하는 방법이 있습니까? 나는 단지 분명한 것을 놓치기를 바랍니다 :-)

도움이 되었습니까?

해결책

나는 사용한다 하위 클립 그리고 그것 하다 패키지 사이의 이동 파일을 지원합니다

다른 팁

나는 실험을 해왔고, 나는 그 길을 찾았다 고 생각합니다.

1) 오른쪽 클릭 드래그 컨텍스트 메뉴 (또는 원하는 SVN 메소드)를 사용하여 파일을 거북이로 움직입니다.

2) Windows 파일 시스템을 사용하여 다시 이동하십시오.

3) Eclipse에서 파일을 드래그하여 모든 참조를 업데이트하십시오.

4) 커밋 - 삭제/추가로 표시되지만 기록을 절약하고 패키지 참조를 한 커밋 (각 커밋 빌드 가능)으로 변경합니다.

오래된 질문이지만 계속 돌아 오기 때문에 이것은 내 문서입니다!

유발이 맞다. 이것은 파괴적인 (매우 불행한!) 결핍처럼 들립니다. (파괴적인 경험이 없다는 것은 확실하지 않습니다) 하위 클립은 일식에서 오른쪽 API에 연결함으로써 이것을 제대로 처리합니다.

파일을 혼자 이동하는 것으로 충분하지 않기 때문에 동시에 두 가지를 동시에 할 수 없습니다. 코드를 다시 컴파일 할 수 있으려면 파일을 수정해야합니다. 따라서 Eclipse와 Refactor를 사용하고 하위 클립이 이동 후 마법 (오래된 파일 제거, 새 파일 추가)을 수행하도록하십시오.

Eclipse가 리팩토링을하도록하면 확실히 루트 디렉토리를 커밋 할 때 SVN이 픽업 해야하는 실제 파일을 변경합니까? 그래도 움직임이 절단 될 것이라고 생각하지 않습니다. SVN은 파일이 원래 디렉토리에서 누락되었지만 새 디렉토리에서 다시 접수되도록 선택해야합니다. 그것은 끈적 끈적한 상황입니다. 나는 가장 좋은 방법이 무엇인지 알지 못할 것입니다. 나는 단지 리팩토링을 수행 한 다음 뿌리를 개인적으로 커밋하지 않더라도 개인적으로 뿌리를 커밋합니다.

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