git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/2] git-p4: Improve rename detection support

From
Tor Arvid Lund <torarvid@gmail.com>
Date
Feb 21, 2011, 09:40 UTC
Message-ID
<AANLkTi=NOOaf+peRgCA3X4AY7oRL-8Md=91KNa=a_fJV@mail.gmail.com>
In-Reply-To
<1298164705-5366-2-git-send-email-vitor.hda@gmail.com>
On Sun, Feb 20, 2011 at 2:18 AM, Vitor Antunes <vitor.hda@gmail.com> wrote:
Show 9 quoted lines
> Only open files for edit after integrating if the SHA1 of source and destination
> differ from each other.
> Add git config option detectRenames to allow permanent rename detection. This
> options should be set to a true/false value.
> Rename "detectRename" variable to "detectRenames" to make it more coherent with
> the description in git man pages, which always use plural.
>
> Signed-off-by: Vitor Antunes <vitor.hda@gmail.com>
> Acked-by: Pete Wyckoff <pw@padd.com>
Acked-by: Tor Arvid Lund <torarvid@gmail.com>
Show 58 quoted lines
> ---
>  contrib/fast-import/git-p4 |   19 +++++++++++++++----
>  1 files changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> index a92beb6..b0da28a 100755
> --- a/contrib/fast-import/git-p4
> +++ b/contrib/fast-import/git-p4
> @@ -543,13 +543,13 @@ class P4Submit(Command):
>         self.options = [
>                 optparse.make_option("--verbose", dest="verbose", action="store_true"),
>                 optparse.make_option("--origin", dest="origin"),
> -                optparse.make_option("-M", dest="detectRename", action="store_true"),
> +                optparse.make_option("-M", dest="detectRenames", action="store_true"),
>         ]
>         self.description = "Submit changes from git to the perforce depot."
>         self.usage += " [name of git branch to submit into perforce depot]"
>         self.interactive = True
>         self.origin = ""
> -        self.detectRename = False
> +        self.detectRenames = False
>         self.verbose = False
>         self.isWindows = (platform.system() == "Windows")
>
> @@ -613,7 +613,16 @@ class P4Submit(Command):
>
>     def applyCommit(self, id):
>         print "Applying %s" % (read_pipe("git log --max-count=1 --pretty=oneline %s" % id))
> -        diffOpts = ("", "-M")[self.detectRename]
> +
> +        if not self.detectRenames:
> +            # If not explicitly set check the config variable
> +            self.detectRenames = gitConfig("git-p4.detectRenames").lower() == "true"
> +
> +        if self.detectRenames:
> +            diffOpts = "-M"
> +        else:
> +            diffOpts = ""
> +
>         diff = read_pipe_lines("git diff-tree -r %s \"%s^\" \"%s\"" % (diffOpts, id, id))
>         filesToAdd = set()
>         filesToDelete = set()
> @@ -640,8 +649,10 @@ class P4Submit(Command):
>             elif modifier == "R":
>                 src, dest = diff['src'], diff['dst']
>                 p4_system("integrate -Dt \"%s\" \"%s\"" % (src, dest))
> -                p4_system("edit \"%s\"" % (dest))
> +                if diff['src_sha1'] != diff['dst_sha1']:
> +                    p4_system("edit \"%s\"" % (dest))
>                 if isModeExecChanged(diff['src_mode'], diff['dst_mode']):
> +                    p4_system("edit \"%s\"" % (dest))
>                     filesToChangeExecBit[dest] = diff['dst_mode']
>                 os.unlink(dest)
>                 editedFiles.add(dest)
> --
> 1.7.4.1
>
>
Previous: Vitor AntunesNext: Vitor Antunes
Message 3 of 4 in “Improvements to rename and copy detection”
  1. 0/2 Improvements to rename and copy detectionVitor Antunes, Feb 20, 2011
  2. 1/2 git-p4: Improve rename detection supportVitor Antunes, Feb 20, 2011
  3. Tor Arvid LundFeb 21, 2011
  4. 2/2 git-p4: Add copy detection supportVitor Antunes, Feb 20, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.