사이드바 영역으로 건너뛰기

ls, rls를 지원하지 않는 cvs에서 모듈 목록 가져오기

 

사실 co -c 가 있는데 이역시 서버 관리자가 모듈을 module/ 안에 넣지 않았으면 사용할 수 없다.

따라서 이런 경우를 위해서 많은 방법을 생각해보았는데 결론은 root의 history를  parsing하는 것이었다. 모듈이 import되어서 버젼관리가 되기 위해서는 반드시 check out 되어야 하는데, import는 남지 않지만 check out은 history에 남게 되어있다.

따라서 이러한 check out정보를 parsing하면 모듈들의 목록을 얻을 수 있다.

 

단 history정보를 서버가 보낼때 각 element의 구분을 space로 하는 문제가 있다.

따라서 파일이나 폴더의 이름에 공백이 들어가는 경우 많은 예외의 경우가 생기게된다.

 

하지만 root의 history는 모듈의 history와 조금 다르다.

root의 경우에는 좋은 점이 폴더 이름의 앞뒤에 '='를 넣어서 보내준다.

따라서 이를 기준으로 모듈 이름을 얻을 수가 있다.

하지만 파일이름에 '='들어가는 경우를 생각하면 이조차 예외가 생긴다.

 

이러한 경우를 해결하기 위해서 두가지 점에 초점을 맞춘다.

1. 폴더이름의 앞뒤에 ' ='를 넣어준다는 점

2. 줄을 맞추기 위한 space를 넣어준다는 점

 

이중에 중요한 것은 바로 2번인데 줄을 맞춘다는 것은 각 line에서 각 element의 시작 위치가 동일하다는 것을 의미하기 때문이다. 따라서 우리가 확신할 수 있는 이름의 모듈을 알고 그것을 기준으로 시작위치를 찾아서 파싱하면 정확한 파싱이 가능하다.

 

이를 위해서는 의미없는 모듈을 import하고 check out할 필요가 있다.

그리고 이 이름에 해당하는 data는 반드시 '='가 2개가 들어간 것중에서 찾아야 완벽히 정확하다.

이러한 까다로운 조건을 모두 만족시키면 완벽한 모듈이름 찾기가 가능하다.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크