gpt4 book ai didi

git - SVN 到 Git 转换后缺少标签

转载 作者:太空狗 更新时间:2023-10-29 14:17:11 25 4
gpt4 key购买 nike

我正在尝试使用以下命令将 Subversion 存储库转换为 Git 存储库:

git svn clone URL_TO_SVN/PROJECT --authors-file=users.txt -T trunk -b branches -t tags/release

与SVN标准布局唯一不同的是,SVN标签 stash 在tags/release下。

移动SVN tags to be proper Git之后标签:

cp -Rf .git/refs/remotes/origin/tags/release/* .git/refs/tags/
rm -Rf .git/refs/remotes/origin/tags

我只得到了几个标签,但并不是所有的 SVN 标签现在都是 Git 标签。

在 SVN 仓库中有从版本 0.1 到 0.35.2 的标签,但在 Git 仓库中我只有标签 0.33.10、0.34.0、0.34.1、0.34.2、0.35.0、0.35。 1, 0.35.2.

如何将所有 SVN 标签转换为 Git 标签?

最佳答案

我已经从网上复制了代码,但是原来的网址已经失效了。这是代码:

# Convert branches and tags

git for-each-ref --format="%(refname:short)" refs/remotes/svn |
sed 's#svn/##' | grep -v '^tags' |
while read aBranch; do git branch $aBranch svn/$aBranch || exit 1; done

git for-each-ref --format="%(refname:short)" refs/remotes/svn/tags/ |
while read tag; do
GIT_COMMITTER_DATE="`git log -1 --pretty=format:\"%ad\" \"$tag\"`" \
GIT_COMMITTER_EMAIL="`git log -1 --pretty=format:\"%ce\" \"$tag\"`" \
GIT_COMMITTER_NAME="`git log -1 --pretty=format:\"%cn\" \"$tag\"`" \
git tag -a -m "`git for-each-ref --format=\"%(contents)\" \"$tag\"`" \
"`echo \"$tag\" | sed 's#svn/tags/##'`" "$tag" || exit 1
done

它是我的 git2svn 的一部分脚本。

关于git - SVN 到 Git 转换后缺少标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com