On 4 December 2016 at 14:03, <larsxschneider@xxxxxxxxx> wrote: > From: Lars Schneider <lars.schneider@xxxxxxxxxxxx> > > P4 commands can fail due to random network issues. P4 users can counter > these issues by using a retry flag supported by all p4 commands [1]. > > Add an integer Git config value `git-p4.retries` to define the number of > retries for all p4 invocations. If the config is not defined then set > the default retry count to 3. Looks good to me, ack. > > [1] https://www.perforce.com/perforce/doc.current/manuals/cmdref/global.options.html > > Signed-off-by: Lars Schneider <larsxschneider@xxxxxxxxx> > --- > > Notes: > Base Commit: 454cb6b (v2.11.0) > Diff on Web: https://github.com/git/git/compare/454cb6b...larsxschneider:654c727 > Checkout: git fetch https://github.com/larsxschneider/git git-p4/retries-v1 && git checkout 654c727 > > Documentation/git-p4.txt | 4 ++++ > git-p4.py | 5 +++++ > 2 files changed, 9 insertions(+) > > diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt > index c83aaf39c3..656587248c 100644 > --- a/Documentation/git-p4.txt > +++ b/Documentation/git-p4.txt > @@ -467,6 +467,10 @@ git-p4.client:: > Client specified as an option to all p4 commands, with > '-c <client>', including the client spec. > > +git-p4.retries:: > + Specifies the number of times to retry a p4 command (notably, > + 'p4 sync') if the network times out. The default value is 3. > + > Clone and sync variables > ~~~~~~~~~~~~~~~~~~~~~~~~ > git-p4.syncFromOrigin:: > diff --git a/git-p4.py b/git-p4.py > index fd5ca52462..2422178210 100755 > --- a/git-p4.py > +++ b/git-p4.py > @@ -78,6 +78,11 @@ def p4_build_cmd(cmd): > if len(client) > 0: > real_cmd += ["-c", client] > > + retries = gitConfigInt("git-p4.retries") > + if retries is None: > + # Perform 3 retries by default > + retries = 3 > + real_cmd += ["-r", str(retries)] > > if isinstance(cmd,basestring): > real_cmd = ' '.join(real_cmd) + ' ' + cmd > -- > 2.11.0 >