Tôi có thư mục trang web được phiên bản bằng git. Tôi sử dụng submodules cho các thư viện cần thiết như Twitter Bootstrap, colorbox và lessjs vì tôi không nên theo dõi mã nguồn nhưng chỉ có phiên bản mã của họ mà tôi sử dụng.xuất khẩu git lưu trữ với các mô-đun con (git lưu trữ tất cả/đệ quy)
Bây giờ tôi muốn triển khai dự án và do đó tôi cũng cần mã phụ. Bằng cách sử dụng git archive
Tôi không nhận được tệp/mã nguồn từ các mô-đun con.
Ba cách tiếp cận sau TRY để đạt được những gì tôi muốn nhưng dont't công việc: cách tiếp cận 1st
#!/bin/sh
export revision="$1"
export GIT_INDEX_FILE=".git/tmpindex"
rm -f "$GIT_INDEX_FILE"
git read-tree $revision
export up="$(pwd)"
read_one_level() {
export GIT_ALTERNATE_OBJECT_DIRECTORIES="$GIT_ALTERNATE_OBJECT_DIRECTORIES":$(
git submodule foreach 'echo "$up/$path/.git/objects"' |
grep -E -v '^(Entering|No submodule mapping found)' |
tr '\n' : |
sed 's/:$//'
)
git submodule foreach '
cd "$up"
subcommit=$(git rev-parse :"$path")
git rm --cached "$path"
git read-tree -i --prefix="$path/" $subcommit
' >/dev/null
}
while git ls-files -s | grep -q ^160000; do
read_one_level
done
git archive --format=tar $(git write-tree)
rm -f "$GIT_INDEX_FILE"
Thomas Rast trong http://git.661346.n2.nabble.com/Running-git-archive-recursively-over-submodules-td4577012.html
này mang lại cho tôi lỗi cả trên Windows như trên Linux không tìm thấy tệp đối tượng nào.
cách tiếp cận thứ 2 https://github.com/meitar/git-archive-all.sh
Than phiền về mktemp không tìm thấy trên Windows. Và sửa chữa các cuộc gọi đến git archive
(từ git-archive
) không cho submodules trong tar ... :(
cách tiếp cận thứ 3 https://github.com/Kentzo/git-archive-all
là lỗi thời từ quan điểm của tôi do không tương thích với python mới nhất 3.3 và vẫn không hoàn toàn làm việc bằng cách sử dụng 2,7 vì samefile phàn nàn
vì vậy, câu hỏi của tôi bây giờ là:. có cách nào/cách tiếp cận gần đây để đối phó với xuất khẩu/lưu trữ một dự án git bao gồm submodules
?Hoặc tôi có nên kiểm tra các subtrees cho quy trình làm việc này không?
Cảm ơn trước
Tôi là tác giả của Kentzo/git-archive-all. Nó tương thích với python 3.3. Vấn đề khác là gì? – Kentzo