gpt4 book ai didi

svn - git-svn 能否正确填充 svn :mergeinfo properties?

转载 作者:IT王子 更新时间:2023-10-29 00:57:45 25 4
gpt4 key购买 nike

我正在评估 git-svn 并试图确定它与特定 svn 存储库的配合情况。我最关心的是让 git-svn 以在 subversion repo 中正确设置 svn:mergeinfo 属性的方式执行 merge 。这可能吗?

这是我到目前为止所做的:

# Checkout the SVN repo.
$ git svn clone svn://server/project1 -T trunk -b branches -t tags

# Make sure we are working on trunk.
$ git reset --hard remotes/trunk

# Modify the working copy.
$ vim file.txt

# Commit locally to the git repo.
$ git commit -a

# Push the commits back to the SVN server.
$ git svn dcommit
Committing to svn://server/project1/trunk ...
M file.txt
Committed r178
M file.txt
r178 = b6e4a3a0c28e7b9aa71d8058d96dcfe7c8a2b349 (trunk)

现在我将如何将那个特定的提交 merge 到一个颠覆分支中?同样,git 在提交更改时正确设置 svn:mergeinfo 属性对我来说非常重要。

最佳答案

尽管这是一个老问题,但自从有人提出这个问题以来,git-svn 的现状已经发生了变化。具体来说,在 git 1.7.5 中,在提交回 svn 时,对设置 svn:mergeinfo 的支持有限。

git svn dcommit现在接受 -mergeinfo=<mergeinfo>旗帜。引用自1.7.5+ man page :

-mergeinfo=<mergeinfo>

Add the given merge information during the dcommit (e.g. --mergeinfo="/branches/foo:1-10"). All svn server versions can store this information (as a property), and svn clients starting from version 1.5 can make use of it. git svn currently does not use it and does not set it automatically.

虽然使用它时应该非常小心。尽管手册页上写着“添加”,但它真正的意思是“替换”。即 svn:mergeinfo属性是根据传递的内容设置的,它不会将指定的修订添加到已经存在的 svn:mergeinfo .从我的错误中吸取教训......

编辑:

他们似乎仍在努力进一步改进这一点。截至git-svn 1.7.7 ,以下文本已添加到 git-svn 手册页:

config key: svn.pushmergeinfo

此选项将导致 git-svn 在可能的情况下尝试自动填充 SVN 存储库中的 svn:mergeinfo 属性。目前,这只能在提交非快进 merge 时完成,其中除第一个之外的所有父项都已被推送到 SVN。

关于svn - git-svn 能否正确填充 svn :mergeinfo properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/714589/

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