저는 작은 응용 프로그램에서 각 파일을 수정하기 전에 파일을 수정하고 각 파일의 버전을 변경할 수 있도록 작업하고 있습니다. 응용 프로그램에서 수행하고자하는 작업은 각 파일을 고유하게 표시하여 동일한 파일을 열 때마다 해당 특정 파일의 기록을 다시 가져올 수 있도록하는 것입니다. 나는 이것을 위해 큰 버전 제어 도구를 사용하지 않고있다. 문법적으로이 프로를 어떻게 할 수 있습니까?파일에 고유 한 태그를 지정하고 다양한 버전을 사용하려면 어떻게해야합니까?
답변
간단한 해결책. 이미 존재하는 베리 손 컨트롤을 사용하십시오 (예 : 망할 놈의)하지만 이것을 정말로하고 싶다면 이것을 시도하십시오.
새 버전을 만들 때마다 파일의 이전 버전을 별도의 숨김 디렉터리에 복사하고 해당 파일의 체크섬이 들어있는 해당 디렉터리에 구성 파일이 있어야합니다. 체크섬은 파일의 해시 된 값 이후 고유 할 것입니다 (파일이 변경 될 때마다 체크섬이 달라집니다 - 직접 체크섬을 계산해야합니다.)
파일을 열면 파일이 열리면서 해당 설정 파일은 디렉토리에 있으며 체크섬과 이미 열린 체크섬을 비교합니다. 그들이 동일하다면 당신은 같은 파일에 있습니다. 그것이 작동하는 방법입니다.
체크섬을 사용하여 체크섬을 최적화 할 수 있습니다. 따라서 사용자가 파일을 변경하면 변경된 내용이 원래대로 변경됩니다. 체크섬은 같은 것을 반환해야합니다 (수정 된 날짜와 시간 등을 포함하지 않는 한)
각 폴더는 패턴 (파일 이름 : Vn.n 예 : someTextFile.txt.v1.0)을 따라야합니다. 역사에서 탐색하고있는 디렉토리가 무엇을 말해야하는지 알아 내야합니다.
또 다른 방법은 단순히 파일을 복사하고 그 끝에 (체크섬 어쩌면 버전 번호?) 몇 가지 태그를 추가하는 것입니다 그래서 그러면 여분의 폴더가 필요하지 않을 것입니다.
또 다른 접근법은 체크섬이 기록한 파일을 호출하고 버전 기록 (해당 체크섬과 함께)을 별도의 구성 파일에 저장 한 다음 참조하여 파일이 무엇인지 알아내는 것입니다. 액세스하고 싶습니다. 그래서 각각의 버전은 자신의 체크섬 (Git과 같은)에 기반하여 참조 될 것입니다.
그래서 각 파일 버전을 합산하면 어딘가에 저장 될 것이므로 동일하면 유효성을 검사 할 수 있습니다 변경없이 여러 파일을 저장하지 않고 공간을 낭비하지 않음으로써) 각 버전이 어디에 있는지 동적으로 결정하고 액세스 할 수 있습니다.
희망을 시작하는 방법에 대해 좀 더 이해할 수 있기를 바랍니다.
흥미로운 솔루션 – Kobojunkie
- 1. 다른 레일 버전을 사용하려면 어떻게해야합니까?
- 2. VirtualEnv에서 setuptools의 사용자 지정 버전을 사용하려면 어떻게해야합니까?
- 3. 페이지 상단에 .php 파일의 고유 이름을 지정하고 index.php 파일에 고유 한 이름을 표시하는 방법
- 4. 다양한 기능에서 변수를 사용하려면 어떻게해야합니까? 자바
- 5. Android에서 최신 HttpComponents 버전을 사용하려면 어떻게해야합니까?
- 6. 동일한 패키지의 두 버전을 사용하려면 어떻게해야합니까?
- 7. 빌드 명령에서 루비의 기본 버전을 사용하려면 어떻게해야합니까?
- 8. Xcode에서 rss 피드의 태그를 추출하고 사용하려면 어떻게해야합니까?
- 9. Jekyll/Octopress : 태그 안에 태그를 사용하려면 어떻게해야합니까?
- 10. 이 경우 로켈 파일에서 태그를 사용하려면 어떻게해야합니까?
- 11. 다양한 앱에 대한 고유 한 인증
- 12. 다양한 SharePoint 패키지를 통해 공통 어셈블리의 고유 버전을 배포 하시겠습니까?
- 13. cin을 한 번만 사용하려면 어떻게해야합니까?
- 14. 한 줄에 ExecuteNonQuery를 사용하려면 어떻게해야합니까?
- 15. 브라우저에서 열 때 파일에 대해 고유 한 것을 식별하려면 어떻게해야합니까?
- 16. 동적으로 렌더링하는 div에 고유 한 이름을 지정하고 싶습니다.
- 17. 고유 한 다중 상태 OneNote 태그를 만들어야합니다.
- 18. 가져온 파일에 대해 TextMate를 사용하려면 어떻게해야합니까?
- 19. Play에서 자바 스크립트에서 맞춤 템플릿 태그를 사용하려면 어떻게해야합니까? 뼈대?
- 20. Firefox를 사용하려면 어떻게해야합니까?
- 21. 번들을 사용하려면 어떻게해야합니까/RVM이 사용하는 루비 버전을 확인 하시겠습니까?
- 22. 고유 행렬을 CSV 형식의 파일에 쓰려면 어떻게해야합니까?
- 23. Maven에서 최신 AppleJavaExtensions를 사용하려면 어떻게해야합니까?
- 24. 프로젝트를 만들 때 레일스가 설치된 루비의 최신 버전을 사용하려면 어떻게해야합니까?
- 25. 여러 링크에 고유 한 통계를 저장하려면 어떻게해야합니까?
- 26. DXCore에서 고유 한 SourceFile 참조를 얻으려면 어떻게해야합니까?
- 27. Mac OS에서 Python을 업데이트하고 RubyGems에서 새 버전을 사용하려면 어떻게해야합니까?
- 28. Windows의 파일에 대해 전역으로 고유 한 ID
- 29. 업로드하는 동안 파일에 고유 한 이름을 부여하십시오.
- 30. "input"태그 대신 Spring MVC "form"태그를 사용하려면 어떻게해야합니까?
혼란 스럽네요. 자신의 버전 관리 시스템을 작성하는 방법에 대해 궁금한 점이 있습니까? 그렇다면 기존 버전을 사용할 필요가 없습니까? –
글쎄, 기존 버전 제어 솔루션을 사용하지 않았다고 말하는 것은 분명한 질문이다. - Git, Mercurial 또는 유사한 것을 사용해 보시기 바랍니다. 반드시 서버 또는 이와 유사한 것으로 중앙 집중식 버전 관리가 필요하지는 않습니다. 지역의 무언가가 괜찮을 수도 있습니다. –
나는 이것을 위해 내 자신의 코드를 갖고 싶다. – Kobojunkie