Skip to content

git-p4: auto-delete named temporary file #303

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

philip-mcgraw
Copy link

Take new approach using the NamedTemporaryFile()
file-like object as input to the ZipFile() which
auto-deletes after implicit close leaving with scope.

Original code produced double-open problems on Windows
platform from using already open NamedTemporaryFile()
generated filename instead of object.

Thanks to Andrey for patiently suggesting several
iterations on this change for avoiding exceptions!

Also print error details after resulting IOError to make
debugging cause of exception less mysterious when it has
nothing to do with "git version recent enough."

Signed-off-by: Philip.McGraw [email protected]

@philip-mcgraw
Copy link
Author

/submit

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 1, 2019

Submitted as [email protected]

@dscho
Copy link
Member

dscho commented Aug 1, 2019

Please do use the GitHub feature where you update PRs by force-pushing the PR branch instead of renaming the branches. Git is really good at versioning, file/branch names are not.

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 2, 2019

On the Git mailing list, Andrey wrote (reply to this):



01.08.2019, 17:39, "Philip McGraw via GitGitGadget" <[email protected]>:
> Take new approach using the NamedTemporaryFile() file-like object as input
> to the ZipFile() which auto-deletes after implicit close leaving with scope.
>
> Original code produced double-open problems on Windows platform from using
> already open NamedTemporaryFile() generated filename instead of object.
>
> Thanks to Andrey for patiently suggesting several iterations on this change
> for avoiding exceptions!
>
> Also print error details after resulting IOError to make debugging cause of
> exception less mysterious when it has nothing to do with "git version recent
> enough."
>
> Signed-off-by: Philip.McGraw [email protected]
> [[email protected]]
>
> Philip.McGraw (1):
>   git-p4: auto-delete named temporary file
>
>  git-p4.py | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
>
> base-commit: 1feeaaf26bff51996f9f96c6dc41ca0f95ab5fc4
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-303%2Fphilip-mcgraw%2Fgit-p4-auto-delete-named-temporary-file-v3-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-303/philip-mcgraw/git-p4-auto-delete-named-temporary-file-v3-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/303
> --
> gitgitgadget

Looks good to me!
Reviewed-by: Andrey Mazo <[email protected]>


-- 
Andrey.

Avoid double-open exceptions on Windows platform when
calculating for lfs compressed size threshold
(git-p4.largeFileCompressedThreshold) comparisons.

Take new approach using the NamedTemporaryFile()
file-like object as input to the ZipFile() which
auto-deletes after implicit close leaving with scope.

Original code had double-open exception on Windows
platform because file still open from NamedTemporaryFile()
using generated filename instead of object.

Thanks to Andrey for patiently suggesting several
iterations on this change for avoiding exceptions!

Also print error details after resulting IOError to make
debugging cause of exception less mysterious when it has
nothing to do with "git version recent enough."

Signed-off-by: Philip.McGraw <[email protected]>
Reviewed-by: Andrey Mazo <[email protected]>
@philip-mcgraw philip-mcgraw force-pushed the git-p4-auto-delete-named-temporary-file-v3 branch from 1b270ef to 7e59b5c Compare August 2, 2019 14:08
@philip-mcgraw
Copy link
Author

Please do use the GitHub feature where you update PRs by force-pushing the PR branch instead of renaming the branches. Git is really good at versioning, file/branch names are not.

Thanks; sorry for the confusion over branch renaming.

@philip-mcgraw
Copy link
Author

/submit

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 2, 2019

Submitted as [email protected]

@ahippo
Copy link

ahippo commented Aug 21, 2019

I wonder why the actual patch didn't make it to the mailing list -- only the cover letter did.
I reviewed it here with no problems, but Junio may not pick it up from here.

@dscho, do you have any ideas?

@philip-mcgraw
Copy link
Author

I wonder why the actual patch didn't make it to the mailing list -- only the cover letter did.
I reviewed it here with no problems, but Junio may not pick it up from here.

@dscho, do you have any ideas?

I wondered what else to do to get the patch included. Without the patch, everyone using git-p4 with LFS on Windows would get double-open exceptions.

@dscho
Copy link
Member

dscho commented Aug 21, 2019

According to git shortlog -nse --since=2.years.ago git-p4.py, our resident git-p4 expert is Luke Diamand [email protected]. Maybe reply to the thread, Cc:ing Luke, requesting a review?

@philip-mcgraw
Copy link
Author

philip-mcgraw commented Aug 21, 2019 via email

@ahippo
Copy link

ahippo commented Aug 23, 2019

Junio may pick up the patch even without Luke's review.
I was just worried that the patch itself didn't make it to the list for some reason (GitGitGadget bug?).
(and wasn't mentioned in the recent "What's cooking" email)

@dscho
Copy link
Member

dscho commented Aug 23, 2019

Luke, would you be able to review this patch?

By "reply" I meant on the mailing list ;-)

I was just worried that the patch itself didn't make it to the list for some reason (GitGitGadget bug?).

It made it to the list: https://public-inbox.org/git/[email protected]/#r

If you follow the advice on the bottom of that page, you can reply to the mails themselves, Cc:ing Luke. That should get their attention.

@ahippo
Copy link

ahippo commented Aug 23, 2019

I was just worried that the patch itself didn't make it to the list for some reason (GitGitGadget bug?).

It made it to the list: https://public-inbox.org/git/[email protected]/#r

Only the cover letter made it, but not the actual patch, right?
This is what I was talking about.

@dscho
Copy link
Member

dscho commented Aug 26, 2019

Only the cover letter made it, but not the actual patch, right?

Yes :-( I don't know, why, though.

@dscho
Copy link
Member

dscho commented Aug 26, 2019

I tried to re-send it, and it kinda worked, but it used a different Message-Id... sigh

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 26, 2019

On the Git mailing list, Git Gadget wrote (reply to this):

From: "Philip.McGraw" <[email protected]>

Take new approach using the NamedTemporaryFile()
file-like object as input to the ZipFile() which
auto-deletes after implicit close leaving with scope.

Original code produced double-open problems on Windows
platform from using already open NamedTemporaryFile()
generated filename instead of object.

Thanks to Andrey for patiently suggesting several
iterations on this change for avoiding exceptions!

Also print error details after resulting IOError to make
debugging cause of exception less mysterious when it has
nothing to do with "git version recent enough."

Signed-off-by: Philip.McGraw <[email protected]>
---
 git-p4.py | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/git-p4.py b/git-p4.py
index c71a6832e2..33bdb14fd1 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1160,13 +1160,11 @@ def exceedsLargeFileThreshold(self, relPath, contents):
             if contentsSize <=
gitConfigInt('git-p4.largeFileCompressedThreshold'):
                 return False
             contentTempFile = self.generateTempFile(contents)
-            compressedContentFile =
tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=False)
-            zf = zipfile.ZipFile(compressedContentFile.name, mode='w')
-            zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
-            zf.close()
-            compressedContentsSize = zf.infolist()[0].compress_size
+            compressedContentFile =
tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=True)
+            with zipfile.ZipFile(compressedContentFile, mode='w') as zf:
+                zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
+                compressedContentsSize = zf.infolist()[0].compress_size
             os.remove(contentTempFile)
-            os.remove(compressedContentFile.name)
             if compressedContentsSize >
gitConfigInt('git-p4.largeFileCompressedThreshold'):
                 return True
         return False
@@ -3514,8 +3512,9 @@ def importHeadRevision(self, revision):
         self.updateOptionDict(details)
         try:
             self.commit(details,
self.extractFilesFromCommit(details), self.branch)
-        except IOError:
+        except IOError as err:
             print("IO error with git fast-import. Is your git version
recent enough?")
+            print("IO error details: {}".format(err))
             print(self.gitError.read())

     def openStreams(self):

--
gitgitgadget

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 26, 2019

On the Git mailing list, Junio C Hamano wrote (reply to this):

Funny that the patch is line-wrapped, which I do not recall ever
seeing in GGG-generated e-mails.  Dscho, do you know if anything
funny is going on?

Git Gadget <[email protected]> writes:

> From: "Philip.McGraw" <[email protected]>
> ...
> diff --git a/git-p4.py b/git-p4.py
> index c71a6832e2..33bdb14fd1 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -1160,13 +1160,11 @@ def exceedsLargeFileThreshold(self, relPath, contents):
>              if contentsSize <=
> gitConfigInt('git-p4.largeFileCompressedThreshold'):
>                  return False
>              contentTempFile = self.generateTempFile(contents)
> -            compressedContentFile =
> tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=False)
> -            zf = zipfile.ZipFile(compressedContentFile.name, mode='w')
> -            zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
> ...

@ahippo
Copy link

ahippo commented Aug 27, 2019

I tried to re-send it, and it kinda worked, but it used a different Message-Id... sigh

@dscho, thank you!
However, I'm not sure if you resent the latest patch.
The change itself looks proper, but the commit message is not the latest, and doesn't have my Reviewed-by.

I guess, I'll just resend @philip-mcgraw's change using send-email.

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 27, 2019

On the Git mailing list, Andrey Mazo wrote (reply to this):

From: "Philip.McGraw" <[email protected]>

Avoid double-open exceptions on Windows platform when
calculating for lfs compressed size threshold
(git-p4.largeFileCompressedThreshold) comparisons.

Take new approach using the NamedTemporaryFile()
file-like object as input to the ZipFile() which
auto-deletes after implicit close leaving with scope.

Original code had double-open exception on Windows
platform because file still open from NamedTemporaryFile()
using generated filename instead of object.

Thanks to Andrey for patiently suggesting several
iterations on this change for avoiding exceptions!

Also print error details after resulting IOError to make
debugging cause of exception less mysterious when it has
nothing to do with "git version recent enough."

Signed-off-by: Philip.McGraw <[email protected]>
Reviewed-by: Andrey Mazo <[email protected]>
---
 git-p4.py | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/git-p4.py b/git-p4.py
index c71a6832e2..33bdb14fd1 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1158,17 +1158,15 @@ def exceedsLargeFileThreshold(self, relPath, contents):
         if gitConfigInt('git-p4.largeFileCompressedThreshold'):
             contentsSize = sum(len(d) for d in contents)
             if contentsSize <= gitConfigInt('git-p4.largeFileCompressedThreshold'):
                 return False
             contentTempFile = self.generateTempFile(contents)
-            compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=False)
-            zf = zipfile.ZipFile(compressedContentFile.name, mode='w')
-            zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
-            zf.close()
-            compressedContentsSize = zf.infolist()[0].compress_size
+            compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=True)
+            with zipfile.ZipFile(compressedContentFile, mode='w') as zf:
+                zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
+                compressedContentsSize = zf.infolist()[0].compress_size
             os.remove(contentTempFile)
-            os.remove(compressedContentFile.name)
             if compressedContentsSize > gitConfigInt('git-p4.largeFileCompressedThreshold'):
                 return True
         return False
 
     def addLargeFile(self, relPath):
@@ -3512,12 +3510,13 @@ def importHeadRevision(self, revision):
         details["time"] = res["time"]
 
         self.updateOptionDict(details)
         try:
             self.commit(details, self.extractFilesFromCommit(details), self.branch)
-        except IOError:
+        except IOError as err:
             print("IO error with git fast-import. Is your git version recent enough?")
+            print("IO error details: {}".format(err))
             print(self.gitError.read())
 
     def openStreams(self):
         self.importProcess = subprocess.Popen(["git", "fast-import"],
                                               stdin=subprocess.PIPE,

base-commit: 1feeaaf26bff51996f9f96c6dc41ca0f95ab5fc4
Pull-Request: https://github.com/gitgitgadget/git/pull/303
-- 
2.21.0

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 27, 2019

On the Git mailing list, Junio C Hamano wrote (reply to this):

Andrey Mazo <[email protected]> writes:

> From: "Philip.McGraw" <[email protected]>
>
> Avoid double-open exceptions on Windows platform when
> calculating for lfs compressed size threshold
> (git-p4.largeFileCompressedThreshold) comparisons.
>
> Take new approach using the NamedTemporaryFile()
> file-like object as input to the ZipFile() which
> auto-deletes after implicit close leaving with scope.
>
> Original code had double-open exception on Windows
> platform because file still open from NamedTemporaryFile()
> using generated filename instead of object.
>
> Thanks to Andrey for patiently suggesting several
> iterations on this change for avoiding exceptions!
>
> Also print error details after resulting IOError to make
> debugging cause of exception less mysterious when it has
> nothing to do with "git version recent enough."
>
> Signed-off-by: Philip.McGraw <[email protected]>
> Reviewed-by: Andrey Mazo <[email protected]>
> ---

Luke, does this look good?

I know Mazo is the only other contributor who has multiple commits
to git-p4.py in the past 2 years, to make Reviewed-by carry some
weight ;-) but as we have so small number of people touching this
script anyway, I'd rather see what the main contributor in the past
2 years thinks.

Thanks.

>  git-p4.py | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/git-p4.py b/git-p4.py
> index c71a6832e2..33bdb14fd1 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -1158,17 +1158,15 @@ def exceedsLargeFileThreshold(self, relPath, contents):
>          if gitConfigInt('git-p4.largeFileCompressedThreshold'):
>              contentsSize = sum(len(d) for d in contents)
>              if contentsSize <= gitConfigInt('git-p4.largeFileCompressedThreshold'):
>                  return False
>              contentTempFile = self.generateTempFile(contents)
> -            compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=False)
> -            zf = zipfile.ZipFile(compressedContentFile.name, mode='w')
> -            zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
> -            zf.close()
> -            compressedContentsSize = zf.infolist()[0].compress_size
> +            compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=True)
> +            with zipfile.ZipFile(compressedContentFile, mode='w') as zf:
> +                zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
> +                compressedContentsSize = zf.infolist()[0].compress_size
>              os.remove(contentTempFile)
> -            os.remove(compressedContentFile.name)
>              if compressedContentsSize > gitConfigInt('git-p4.largeFileCompressedThreshold'):
>                  return True
>          return False
>  
>      def addLargeFile(self, relPath):
> @@ -3512,12 +3510,13 @@ def importHeadRevision(self, revision):
>          details["time"] = res["time"]
>  
>          self.updateOptionDict(details)
>          try:
>              self.commit(details, self.extractFilesFromCommit(details), self.branch)
> -        except IOError:
> +        except IOError as err:
>              print("IO error with git fast-import. Is your git version recent enough?")
> +            print("IO error details: {}".format(err))
>              print(self.gitError.read())
>  
>      def openStreams(self):
>          self.importProcess = subprocess.Popen(["git", "fast-import"],
>                                                stdin=subprocess.PIPE,
>
> base-commit: 1feeaaf26bff51996f9f96c6dc41ca0f95ab5fc4
> Pull-Request: https://github.com/gitgitgadget/git/pull/303

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 28, 2019

On the Git mailing list, Luke Diamand wrote (reply to this):

On Tue, 27 Aug 2019 at 23:31, Junio C Hamano <[email protected]> wrote:
>
> Andrey Mazo <[email protected]> writes:
>
> > From: "Philip.McGraw" <[email protected]>
> >
> > Avoid double-open exceptions on Windows platform when
> > calculating for lfs compressed size threshold
> > (git-p4.largeFileCompressedThreshold) comparisons.
> >
> > Take new approach using the NamedTemporaryFile()
> > file-like object as input to the ZipFile() which
> > auto-deletes after implicit close leaving with scope.
> >
> > Original code had double-open exception on Windows
> > platform because file still open from NamedTemporaryFile()
> > using generated filename instead of object.
> >
> > Thanks to Andrey for patiently suggesting several
> > iterations on this change for avoiding exceptions!
> >
> > Also print error details after resulting IOError to make
> > debugging cause of exception less mysterious when it has
> > nothing to do with "git version recent enough."
> >
> > Signed-off-by: Philip.McGraw <[email protected]>
> > Reviewed-by: Andrey Mazo <[email protected]>
> > ---
>
> Luke, does this look good?
>
> I know Mazo is the only other contributor who has multiple commits
> to git-p4.py in the past 2 years, to make Reviewed-by carry some
> weight ;-) but as we have so small number of people touching this
> script anyway, I'd rather see what the main contributor in the past
> 2 years thinks.

I think it looks reasonable.

Ack.


>
> Thanks.
>
> >  git-p4.py | 13 ++++++-------
> >  1 file changed, 6 insertions(+), 7 deletions(-)
> >
> > diff --git a/git-p4.py b/git-p4.py
> > index c71a6832e2..33bdb14fd1 100755
> > --- a/git-p4.py
> > +++ b/git-p4.py
> > @@ -1158,17 +1158,15 @@ def exceedsLargeFileThreshold(self, relPath, contents):
> >          if gitConfigInt('git-p4.largeFileCompressedThreshold'):
> >              contentsSize = sum(len(d) for d in contents)
> >              if contentsSize <= gitConfigInt('git-p4.largeFileCompressedThreshold'):
> >                  return False
> >              contentTempFile = self.generateTempFile(contents)
> > -            compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=False)
> > -            zf = zipfile.ZipFile(compressedContentFile.name, mode='w')
> > -            zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
> > -            zf.close()
> > -            compressedContentsSize = zf.infolist()[0].compress_size
> > +            compressedContentFile = tempfile.NamedTemporaryFile(prefix='git-p4-large-file', delete=True)
> > +            with zipfile.ZipFile(compressedContentFile, mode='w') as zf:
> > +                zf.write(contentTempFile, compress_type=zipfile.ZIP_DEFLATED)
> > +                compressedContentsSize = zf.infolist()[0].compress_size
> >              os.remove(contentTempFile)
> > -            os.remove(compressedContentFile.name)
> >              if compressedContentsSize > gitConfigInt('git-p4.largeFileCompressedThreshold'):
> >                  return True
> >          return False
> >
> >      def addLargeFile(self, relPath):
> > @@ -3512,12 +3510,13 @@ def importHeadRevision(self, revision):
> >          details["time"] = res["time"]
> >
> >          self.updateOptionDict(details)
> >          try:
> >              self.commit(details, self.extractFilesFromCommit(details), self.branch)
> > -        except IOError:
> > +        except IOError as err:
> >              print("IO error with git fast-import. Is your git version recent enough?")
> > +            print("IO error details: {}".format(err))
> >              print(self.gitError.read())
> >
> >      def openStreams(self):
> >          self.importProcess = subprocess.Popen(["git", "fast-import"],
> >                                                stdin=subprocess.PIPE,
> >
> > base-commit: 1feeaaf26bff51996f9f96c6dc41ca0f95ab5fc4
> > Pull-Request: https://github.com/gitgitgadget/git/pull/303

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 28, 2019

On the Git mailing list, Johannes Schindelin wrote (reply to this):

Hi Junio,

On Mon, 26 Aug 2019, Junio C Hamano wrote:

> Funny that the patch is line-wrapped, which I do not recall ever
> seeing in GGG-generated e-mails.  Dscho, do you know if anything
> funny is going on?

Yes, this was me trying to re-send the patch via GMail's web UI because
the first time GitGitGadget sent it, it did not get through (only the
cover letter did).

So I tried to fix the screw-up by sending manually, and screwed it up
even more.

Sorry about that.
Dscho

>
> Git Gadget <[email protected]> writes:
>
> > From: "Philip.McGraw" <[email protected]>
> > ...
> > diff --git a/git-p4.py b/git-p4.py
> > index c71a6832e2..33bdb14fd1 100755
> > --- a/git-p4.py
> > +++ b/git-p4.py
> > @@ -1160,13 +1160,11 @@ def exceedsLargeFileThreshold(self, relPath, c=
ontents):
> >              if contentsSize <=3D
> > gitConfigInt('git-p4.largeFileCompressedThreshold'):
> >                  return False
> >              contentTempFile =3D self.generateTempFile(contents)
> > -            compressedContentFile =3D
> > tempfile.NamedTemporaryFile(prefix=3D'git-p4-large-file', delete=3DFal=
se)
> > -            zf =3D zipfile.ZipFile(compressedContentFile.name, mode=
=3D'w')
> > -            zf.write(contentTempFile, compress_type=3Dzipfile.ZIP_DEF=
LATED)
> > ...
>

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 29, 2019

On the Git mailing list, Junio C Hamano wrote (reply to this):

Johannes Schindelin <[email protected]> writes:

> Yes, this was me trying to re-send the patch via GMail's web UI because
> the first time GitGitGadget sent it, it did not get through (only the
> cover letter did).

As long as that was manual screw-up, while fixing some glitches in
the machinery, that is fine.  I care about automation running
smoothly.

Thanks.

@gitgitgadget
Copy link

gitgitgadget bot commented Aug 29, 2019

On the Git mailing list, Johannes Schindelin wrote (reply to this):

Hi Junio,

On Wed, 28 Aug 2019, Junio C Hamano wrote:

> Johannes Schindelin <[email protected]> writes:
>
> > Yes, this was me trying to re-send the patch via GMail's web UI becaus=
e
> > the first time GitGitGadget sent it, it did not get through (only the
> > cover letter did).
>
> As long as that was manual screw-up, while fixing some glitches in
> the machinery, that is fine.  I care about automation running
> smoothly.

Indeed, I also care about automation, as that keeps me sane (I would not
be able to do everything I do without offloading substantial parts to
Azure Pipelines, like GitGitGadget).

I am quite a bit worried about this, as it seemed to happen at least
three times. I'll see if it happens again, and when it does, I will try
to save the mbox files as build artifacts, and then add another job that
I can run manually to re-send the mbox files that did not make it to the
mailing list (identified by the absence from public-inbox).

At the moment, I am still rather busy elsewhere, trying to catch up
after three weeks that I spent (or tried to spend) mostly offline.

And I am really sorry for not writing a reply to the thread when I tried
to re-send the patch manually, describing what I was doing, and why. I
will try to do better next time!

Ciao,
Dscho

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 6, 2019

On the Git mailing list, Junio C Hamano wrote (reply to this):

> >> ...
> >>  Luke, does this look good?
> >>
> >>  I know Mazo is the only other contributor who has multiple commits
> >>  to git-p4.py in the past 2 years, to make Reviewed-by carry some
> >>  weight ;-) but as we have so small number of people touching this
> >>  script anyway, I'd rather see what the main contributor in the past
> >>  2 years thinks.
> >
> > I think it looks reasonable.
> >
> > Ack.
>
> Junio, does Philip need to resend a v3 with Luke's ack or will you just add it yourself while queuing the patch?
> (sorry, if you already picked up the patch -- I just didn't see it in the last What's cooking update)

Sorry, I do not recall the details of this old a thread but if I
recall correctly there was only a corrupt patch that I cannot use,
so somebody would need to send a patch that actually applies. With a
patch that applies, I can tweak the log message
with acked-by etc. just fine.

Thanks.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 6, 2019

This branch is now known as pm/p4-auto-delete-named-temporary.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 6, 2019

This patch series was integrated into pu via git@3ec4a7a.

@gitgitgadget gitgitgadget bot added the pu label Oct 6, 2019
@gitgitgadget
Copy link

gitgitgadget bot commented Oct 7, 2019

This patch series was integrated into pu via git@9edfe2c.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 7, 2019

This patch series was integrated into next via git@4f45be7.

@gitgitgadget gitgitgadget bot added the next label Oct 7, 2019
@gitgitgadget
Copy link

gitgitgadget bot commented Oct 8, 2019

This patch series was integrated into pu via git@9c7ca4a.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 9, 2019

This patch series was integrated into pu via git@328caa9.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 9, 2019

This patch series was integrated into pu via git@2e956f7.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 9, 2019

This patch series was integrated into next via git@2e956f7.

@gitgitgadget
Copy link

gitgitgadget bot commented Oct 9, 2019

This patch series was integrated into master via git@2e956f7.

@gitgitgadget gitgitgadget bot added the master label Oct 9, 2019
@gitgitgadget gitgitgadget bot closed this Oct 9, 2019
@gitgitgadget
Copy link

gitgitgadget bot commented Oct 9, 2019

Closed via 2e956f7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants