2010-02-10 7 views
3

직장 내 인프라를 svn 대신 git을 사용하도록 변환 중입니다. 전반적인 마이그레이션은 잘 진행되고 있지만 SQL 스키마 마이그레이션을 수행하기 위해 개발 한 도구가 있습니다.Git 커밋 ID에 부분 순서 지정

개별 스키마 변경 종속성을 처리하기 위해 migrations 스크립트는 subversion 키워드 대체를 사용하여 마지막으로 변경된 개정 번호를 스키마에 저장합니다. git을 사용하면 개정 내역이 비선형이기 때문에 동일한 아이디어를 사용할 수 없습니다 (그리고 우리는 분기 기능을 완전히 활용하려고합니다).

따라서, git에서 토폴로지별로 정렬 된 커밋 id 목록을 얻으려면 어떻게해야합니까? 그 문제를 처리하는 방법에 대해 누구나 더 좋은 생각이 있습니까?

답변

2
git rev-list old-revision..new-revision 

이는 최신 내용을 먼저 보여줍니다. 당신은 오래된-첫째을 원하는 경우에, 당신은 파일이 소스 코드 저장소의 출처를 추적하는 방법을 원한다면, 당신은 작업을 태그하고 표시 할 수있는 방법을 찾는 조사 할 수 있습니다 --reverse

0

추가 태그가있는 파일입니다. 이 중 일부는 실제 배포 프로세스에 따라 다르지만 짧은 대답은 svn 키워드를 태그 기반 메커니즘으로 대체하는 것입니다. (실제로 svn에서 실제로 해왔 던 작업 일 수도 있습니다.)

여기에 언급 된 "얼룩 필터"는 들었지만 직접 사용하지 않았기 때문에 추측 할 수 없습니다. 그들이 여기에 어떻게 들어갈 수 있는지.

+0

태그가 너무 무겁습니다. 그러나 이것은 일반적으로 일반적으로 작동합니다. 감사. – Silas

+0

버전 태그 +'git describe'가 도움이 될 수 있습니다. HEAD가 tag foo-1.2 이후에 13 커밋되고 SHA 5af74bc가 있으면 "foo-1.2-13-g5af74bc"와 같은 것을 생성합니다. 분기 이름을 추가하고 로컬 트리가 더티인지 아닌지 여부는 해당 파일의 출처에 대한 많은 정보를 제공합니다. 그러나, 당신은 모든 체크 아웃 마법이 아닌, 빌드 로직에서 모든 것을 할 필요가 있습니다. – ndim