0

如何使用pysvn.client合并相关函数实现cherry-pick合并,

将特定修订(或修订范围)从一个分支合并到另一个分支,

svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]

现在我正在使用pysvn.Client.merge_peg2(http://pysvn.tigris.org/docs/pysvn_prog_ref.html#pysvn_client_merge_peg2),没有警告和错误,但无法工作。

我对 merge_peg2 及其参数感到很困惑

    merge_peg2(sources,
    ranges_to_merge,
    peg_revision,
    tareget_wcpath,
    depth=depth,
    notice_ancestry=False,
    force=False,
    dry_run=False,
    record_only=True,
    merge_options=[] )

sources         # the source repo url which merge from?
ranges_to_merge #"a list of tuples with the start and end revisions to be merged"?how can I generate this revision range?
peg_revision    #pysvn.Revision(pysvn.opt_revision_kind.unspecified) is ok?
tareget_wcpath  #I fill this with the dest local repo

有什么建议、例子或其他解决方案吗?

4

1 回答 1

2

这就是我要做的樱桃挑选合并。对您选择的修订进行排序并对其进行迭代。

def merge_to_wc(r):
  WC_PATH = '.'
  FROM_URL = 'https:/svn.somewhere.org/my_project/branches/1.0'

  pysvn.merge_peg(
    FROM_URL,
    pysvn.Revision(pysvn.opt_revision_kind.number, r-1),
    pysvn.Revision(pysvn.opt_revision_kind.number, r),
    pysvn.Revision(pysvn.opt_revision_kind.head),
    WC_PATH)

这种方法是通过反复试验、搜索互联网、猜测和咬牙切齿找到的。

于 2013-07-12T15:44:04.107 回答