상세 컨텐츠

본문 제목

Eclipse svn: E200005: .DS_Store ignores svn

programing/IDE

by ZelKun 2017. 3. 6. 14:00

본문

반응형

Mac에서 commit 하다보면.. svn: E200005: ~~.DS_Store 파일이 에러라고

commit 안될때가 있는데

시스템에서 사용하는 환경파일을 관리 필요가 없으니 예외처리해줍니다

 

윈도우는 폴더별로 쓸데없는 desktop.ini thumbnail.db 파일이있겠고..

Mac 역시 .DS_Store 파일이겠죠… ._.DS_Store 있겠네요

 

우선 Eclipse 환경설정(Preferences) 열어줍니다

그리고 Team > Ignored Resources 이동




지금 보이는 화면이 프로젝트 버전관리에서 예외처리되는 항목입니다

C, C++ Build, Compile 진행하면 생기는 *.a *.o 등이 이미 예외처리되있는게 보이네요

 

Add Pattern 클릭하여 예외처리할 패턴을 추가합니다

* 사용할 있는게 한눈에 보이네요

 

 

.DS_Store, desktop.ini, thumbnail.db 추가해줬습니다

 

 

이제 .DS_Store 파일이나 desktop.ini commit 되면서 생기는 에러볼일이 줄겠네요…

근데 이미 commit 경우는…. 파일을 삭제하고 commit 해야 되니 참고하시길…

 

.DS_Store 파일을 찾아 제거하는 소스인데 실행은 안됩니다만

참고하시라고 넣은거라서요

대상 폴더를 기준으로 하위 디렉토리를 순회하면서 목적파일을 제거 하는 단순한 알고리즘이 들어있으니

별로 어렵진 않습니다

/**

 * SVN 파일 제거용

 *

 * @author Administrator

 *

 */

 

public class RemovedSvnFile {

private static Logger log = Logger.getLogger(RemovedSvnFile.class);

private static String path = "/workspace_node"; // 작업공간경로

private static String removedFile = ".svn"; //svn 설정 디렉토리

 

public void dirSerach(String path, String fileNm) {

dirSerach(path + FileUtil.getSeparator() + fileNm);

}

 

public void dirSerach(String path) {

boolean a = false;

String[] list = FileUtil.getFileList(path);

for (String s : list) {

if (FileUtil.getDirChk(path, s) && !s.equals(removedFile)) {

dirSerach(path, s);

} else if (FileUtil.getDirChk(path, s) && s.equals(removedFile)) {

FileUtil.rmDirAll(path, s); //.svn 폴더 전체 삭제

} else {

if (s.contains(".DS_Store") || s.equals("desktop.ini") || s.equals("thumbnail.db")) { // .DS_Store, desktop.ini, thumbnail.db 삭제

FileUtil.rmFile(path, s); // 파일 삭제

}

}

}

}

 

public static void main(String[] args) {

RemovedSvnFile _p = new RemovedSvnFile();

_p.dirSerach(path);

System.exit(0);

}

}

현제 경로 기준으로 디렉토리 유무와 .svn 디렉토리인지 구분하며

.svn 디렉토리 일경우 하위파일을 삭제하고 .svn 디렉토리를 삭제하는 내용이 추가되있습니다

그거 말고는 디렉토리일경우 다시 디렉토리 조회하는 단순한 알고리즘입니다

Logger는 로그를 위해 넣은거니 로그 안보려면 제거하면 됩니다

.svn을 사용하지 않고

removedFile이란 변수를 추가한건 csv등 다른 데서도 사용하려고 분리해 놓은거니 참고하시길

반응형

관련글 더보기

댓글 영역