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 に答える