cornflowerblue (121.♡.202.176)
2024년 4월 26일 PM 06:26 · 수정됨(04. 27. 17:25)
안녕들하세요 ! ㅋㄹㅇ에서 잘 이주하여 눈팅+댓글 놀이만하다.. 이렇게 첫 글을 쓰게 됐습니다.
제가 소스관리에 너무나도 무지하여 이렇게 질문 글 올립니다.
우선 개발/소스관리는 IntelliJ + SVN 환경입니다.
소스코드 리비전은 아래와 같습니다.
10 : 원본 trunk
11~20 : 기능#1 추가
21~30 : 기능#2 추가
최종작업디렉토리 : 30
이렇게 개발하면서 모두 commit 했는데, 문제는 branch를 따지 않고 하나의 trunk 에 그대로 commit 을 진행했습니다... ㅠㅠ
그런데 기능#1 추가가 취소되면서 11~20의 내용을 빼야되어서,
최종적인 형상은 10(원본)에 21~30의 내용만 반영되어야 하는데요.
IntelliJ + SVN 환경에서 어떻게 진행하는 것이 맞는지 모르겠습니다.
제가 처음 진행한 방식은,
1) 10 버전을 별도의 디렉토리에 checkout
2) 10 디렉토리에 21~30의 내용을 merge (30 디렉토리에서 21~30에서 추가/변경된 파일을 10 디렉토리에 overwrite)
그런데 이 형태가 최종 형태에는 부합하나 이걸 trunk에 commit 할 방법을 모르겠더라고요.
10 디렉토리는 svn 관리대상이 아니기 때문에 여기서 저장소에 바로 반영은 안되는 것으로 이해했습니다...
그래서 두번째로 진행해보려는 방식은,
1) 10 버전을 별도의 디렉토리에 checkout
2) 11~20 에서 추가된 파일은 30 디렉토리에서 삭제
3) 11~20 에서 변경된 파일은 10버전 파일을 30 디렉토리로 overwrite
4) 30 작업디렉토리에서 commit (31로 리비전 증가)
이렇게 진행하는 것이 맞을까요?
아니면 다른 방식으로 하는 것이 좋을지.. 선배님들의 말씀 부탁드립니다.
읽어주셔서 감사합니다.
댓글 (6)
-
아아빵쓰
24.04.26 · 118.♡.12.54
-
Ccornflowerblue
→ 아빵쓰 작성자
24.04.26 · 223.♡.91.207
회사 시스템인데 바꿀 생각이 없네요.. ㅠㅠ -
라라맨땅
24.04.26 · 114.♡.94.127
최종 30에서 역으로 11~20까지의 내용을 수동으로 하나씩 내용 체크해서 제거하는 방향으로 해야 되지 않을까 싶네요.
11~20에서 새롭게 추가된 파일은 파일 삭제 로그 남기며 정리하고, 기존 파일에 추가된 소스 코드는 코드 삭제 로그 남기고 삭제하는게, 나중을 위해서 좋지 않을까요??
첫 번째처럼 리비전 중간에 checkout 하고, 수정된 내용을 commit 하려면, 충돌 나기 때문에 결국 새로운 branch를 따야 합니다. 하나의 저장소로 관리하려면 두 번째처럼 최종 리비전에서 하나씩 제거하는 방법밖에 없을 껍니다.
리비전이 지저분해지는게 싫다면, 저장소를 새로 만들어서 깔끔하게 정리하면 될거구요.. -
Ccornflowerblue
→ 라맨땅 작성자
24.04.26 · 223.♡.91.207
차근차근 해보겠습니다 ㅎ 말씀 고맙습니다 ! - 긴
긴급휴무
24.04.27 · 211.♡.71.91
10디렉터리에 21~30의 내용을 머지. 하는것이 svn에서 제공하고 있는 기능아닌가요?(충돌은 해결해야 할수도 있습니다)
커밋이력에서 11~20을 아예 없었던것처럼 하고 싶은신 걸까요? -
Ccornflowerblue
→ 긴급휴무 작성자
24.04.27 · 221.♡.255.142
"10디렉터리에 21~30의 내용을 머지" 이게 원하는 결과 맞습니다.
그렇게 하기 위해 svn 상에서 어떻게 진행해야할지 잘 모르겠던거고요 ㅎ
댓글을 작성하려면 이 필요합니다.
기억이 안나서 도움을 못드려 죄송합니다.
다만 지금이라도 git으로 바꾸셨으면 좋겠습니다.
꼭!!!