형상관리/SVN

Subclipse(SVN) Coflict(충돌) 문제 해결

hangbeeeeeen 2023. 9. 15. 20:15

SNV을 사용하다보면 충돌이 발생했다는 에러메시지를 가끔 보는 경우가 있음. 

파일을 수정,삭제 등 진행했을때 원격저장소에 있는 내용과 현재 로컬의 파일의 내용이 틀려 꼬이거나

원격저장소의 HEAD 정보가 달라 문제가 발생하는 경우가있는데 지금까지 해본 간단히 해결하는방법

두가지가 있다.

 

1. 프로젝트 우클릭 >  Team > Update to HEAD  

이 방법의 경우 로컬파일의 정보와 SVN의 HEAD 정보를 일치 시키는 과정이며  보통 에러 문구의 HEAD 라는 내용이 들어있으며 , commit의 에러는 왠만하면 위 방법으로 해결됨 

2.SQLite 사용 

https://sqlitebrowser.org/dl/

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.2) for Windows: Windows PortableApp Note - If for any reason the standard Windows release does not work (e.g. gives an error), try a nightly build (below). Nightly builds ofte

sqlitebrowser.org

 

위 사이트에서 다운받을 수 있으며 no installer 버전으로 받고 압축 푼 뒤 DB Browser for SQLite.exe 실행 

좌측 상단에 데이터베이스 열기 클릭 후 워크스페이스 > 프로젝트 > .svn 경로를 보면 wc.db 파일이 존재하는데 열어준다 .

 

그 후 데이터 보기 > WC_LOCK 또는 WORK_QUEUED 에 데이터가 있다면  아래 SQL을 실행한 후 변경사항 저장하기 

하면 해결됨 

DELETE FROM WC_LOCK;
DELETE FROM WORK_QUEUE;

 

하지만 나의경우는 LOCK의 문제는 아니였고 QUEUE의 문제도 아니였다.

새로 생성한 패키지를 내 프로젝트에서 commit을 하려하면  

is an existing item in conflict; please mark the conflict as resolved before adding a new item here

이런 문구가 포함된 에러가 자꾸 발생함..

찾아보니 ACTUAL_NODE 테이블에 같은 패키지 데이터가 존재하는데, SVN Repository 에는 보이지 않았음.. 

그래서 자꾸 충돌이 난다고 안된거 같다 .. 

그래서 ACTUAL_NODE 에 있는 같은 경로의 패키지를 삭제 해주고 변경사항 저장하고 Commit 하니 잘 동작했다

DELETE "main"."ACTUAL_NODE" WHERE local_relpath = '파일or패키지경로';

대충 요런 sql 을 실행하고 한번 해보시길.. 

반응형