Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Grant Edwards Newsgroups: comp.lang.python Subject: Best way to do subversion stuff Date: Thu, 28 Apr 2016 18:36:37 +0000 (UTC) Lines: 40 Message-ID: References: X-Trace: news.uni-berlin.de 5ou8Eqhmn0Ncn5JwsCdWqAQAhuHsJqi6wvNfCgwh3XZQ== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'modify': 0.04; 'modified': 0.05; "(i'd": 0.09; 'combines': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'received:qwest.net': 0.09; 'url:github': 0.09; 'python': 0.10; 'output': 0.13; 'commit': 0.15; 'options.': 0.15; 'api,': 0.16; 'externals': 0.16; 'received:80.91.229.3': 0.16; 'received:io': 0.16; 'received:plane.gmane.org': 0.16; 'received:psf.io': 0.16; 'scratch': 0.16; 'fairly': 0.22; 'mixed': 0.22; 'subversion': 0.22; 'seems': 0.23; 'xml': 0.24; 'all.': 0.24; 'header:User-Agent:1': 0.26; "doesn't": 0.26; 'appear': 0.26; 'header:X-Complaints-To:1': 0.26; 'figure': 0.27; 'finally,': 0.27; 'command-line': 0.29; "i'd": 0.31; 'operations': 0.31; 'option': 0.31; 'picking': 0.33; 'handle': 0.34; 'running': 0.34; 'add': 0.34; 'options:': 0.35; 'tasks': 0.35; 'something': 0.35; 'but': 0.36; 'there': 0.36; 'url:org': 0.36; 'faster': 0.36; 'to:addr:python-list': 0.36; 'received:org': 0.37; 'log': 0.38; 'to:addr:python.org': 0.40; 'some': 0.40; 'more': 0.63; 'room.': 0.84; 'canonical': 0.91; 'edwards': 0.91; 'subject:Best': 0.93 X-Injected-Via-Gmane: http://gmane.org/ X-Gmane-NNTP-Posting-Host: 67-130-15-94.dia.static.qwest.net User-Agent: slrn/1.0.2 (Linux) X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: Xref: csiph.com comp.lang.python:107822 I'd like to write some small command-line utilities to do some tasks in subversion: * Do a commit that includes all modified externals. * Do a status that includes status of all externals. * Do a log that combines logs of . and all externals. There appear to be three options: 1) pysvn This seems to be the canonical Python API, but is a little out of date (I'd have to downgrade subversion from 1.9.3 to 1.9.1). 2) PySvn Doesn't do commit or status operations and doesn't handle externals at all. AFIACT it's running the the command-line /usr/bin/svn with various options. Nice job picking a name that's not going to get mixed up with pysvn. ;) 3) os.subproces + /usr/bin/svn This is more or less re-inventing 2) The xml output option makes this approach fairly easy. It might be faster to write something special-purpose from scratch than to figure out the internals of PySvn and modify it to add the operations/options I want. Any recommendations? -- Grant Edwards grant.b.edwards Yow! Finally, Zippy at drives his 1958 RAMBLER gmail.com METROPOLITAN into the faculty dining room.