2013-02-24 1 views
0

저는 작은 응용 프로그램에서 각 파일을 수정하기 전에 파일을 수정하고 각 파일의 버전을 변경할 수 있도록 작업하고 있습니다. 응용 프로그램에서 수행하고자하는 작업은 각 파일을 고유하게 표시하여 동일한 파일을 열 때마다 해당 특정 파일의 기록을 다시 가져올 수 있도록하는 것입니다. 나는 이것을 위해 큰 버전 제어 도구를 사용하지 않고있다. 문법적으로이 프로를 어떻게 할 수 있습니까?파일에 고유 한 태그를 지정하고 다양한 버전을 사용하려면 어떻게해야합니까?

+0

혼란 스럽네요. 자신의 버전 관리 시스템을 작성하는 방법에 대해 궁금한 점이 있습니까? 그렇다면 기존 버전을 사용할 필요가 없습니까? –

+4

글쎄, 기존 버전 제어 솔루션을 사용하지 않았다고 말하는 것은 분명한 질문이다. - Git, Mercurial 또는 유사한 것을 사용해 보시기 바랍니다. 반드시 서버 또는 이와 유사한 것으로 중앙 집중식 버전 관리가 필요하지는 않습니다. 지역의 무언가가 괜찮을 수도 있습니다. –

+0

나는 이것을 위해 내 자신의 코드를 갖고 싶다. – Kobojunkie

답변

0

간단한 해결책. 이미 존재하는 베리 손 컨트롤을 사용하십시오 (예 : 망할 놈의)하지만 이것을 정말로하고 싶다면 이것을 시도하십시오.

새 버전을 만들 때마다 파일의 이전 버전을 별도의 숨김 디렉터리에 복사하고 해당 파일의 체크섬이 들어있는 해당 디렉터리에 구성 파일이 있어야합니다. 체크섬은 파일의 해시 된 값 이후 고유 할 것입니다 (파일이 변경 될 때마다 체크섬이 달라집니다 - 직접 체크섬을 계산해야합니다.)

파일을 열면 파일이 열리면서 해당 설정 파일은 디렉토리에 있으며 체크섬과 이미 열린 체크섬을 비교합니다. 그들이 동일하다면 당신은 같은 파일에 있습니다. 그것이 작동하는 방법입니다.

체크섬을 사용하여 체크섬을 최적화 할 수 있습니다. 따라서 사용자가 파일을 변경하면 변경된 내용이 원래대로 변경됩니다. 체크섬은 같은 것을 반환해야합니다 (수정 된 날짜와 시간 등을 포함하지 않는 한)

각 폴더는 패턴 (파일 이름 : Vn.n 예 : someTextFile.txt.v1.0)을 따라야합니다. 역사에서 탐색하고있는 디렉토리가 무엇을 말해야하는지 알아 내야합니다.

또 다른 방법은 단순히 파일을 복사하고 그 끝에 (체크섬 어쩌면 버전 번호?) 몇 가지 태그를 추가하는 것입니다 그래서 그러면 여분의 폴더가 필요하지 않을 것입니다.

또 다른 접근법은 체크섬이 기록한 파일을 호출하고 버전 기록 (해당 체크섬과 함께)을 별도의 구성 파일에 저장 한 다음 참조하여 파일이 무엇인지 알아내는 것입니다. 액세스하고 싶습니다. 그래서 각각의 버전은 자신의 체크섬 (Git과 같은)에 기반하여 참조 될 것입니다.

그래서 각 파일 버전을 합산하면 어딘가에 저장 될 것이므로 동일하면 유효성을 검사 할 수 있습니다 변경없이 여러 파일을 저장하지 않고 공간을 낭비하지 않음으로써) 각 버전이 어디에 있는지 동적으로 결정하고 액세스 할 수 있습니다.

희망을 시작하는 방법에 대해 좀 더 이해할 수 있기를 바랍니다.

+0

흥미로운 솔루션 – Kobojunkie

관련 문제