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

Re: [PATCH 2/2] git-p4: Improve branch support

From
PWPete Wyckoff <pw@padd.com>
Date
Feb 17, 2011, 18:42 UTC
Message-ID
<20110217184234.GB20627@honk.padd.com>
In-Reply-To
<1297813789-3831-3-git-send-email-vitor.hda@gmail.com>
vitor.hda@gmail.com wrote on Tue, 15 Feb 2011 23:49 +0000:
> Add new config option branchUser to allow filtering P4 branch list by user.
> Allow defining the branch list through branchList config option.
> Correct base branch directory detection to use '/' as the split character.

I've only been avoiding reading this one because I don't use branches, and am having a hard time following what the point of the change is. Maybe someone else will notice that this is a good change straightaway, and save you the bother of explaining it to me.

The whole detectBranches option seems a bit spotty, given its lack of documentation and numerous shady "## HACK" and "## FIXME" comments. So it certainly does appreciate your attention.

As far as I can tell, a branch is just a mapping between two areas of the repo, and all you can do with one is to feed it to "p4 integrate" instead of giving a single explicit src/dest.

Show 12 quoted lines
> @@ -1272,7 +1277,13 @@ class P4Sync(Command):
>      def getBranchMapping(self):
>          lostAndFoundBranches = set()
>  
> -        for info in p4CmdList("branches"):
> +        user = gitConfig("git-p4.branchUser")
> +        if len(user) > 0:
> +            command = "branches -u %s" % user
> +        else:
> +            command = "branches"
> +
> +        for info in p4CmdList(command):

This part is for branches -u, to limit the auto-detected braches to just those created by a given user.

Show 10 quoted lines
> @@ -1305,6 +1316,12 @@ class P4Sync(Command):
>          for branch in lostAndFoundBranches:
>              self.knownBranches[branch] = branch
>  
> +        configBranches = gitConfigList("git-p4.branchList")
> +        for branch in configBranches:
> +            if branch:
> +                (source, destination) = branch.split(":")
> +                self.knownBranches[destination] = source
> +

This bit adds more branches, if you have put them in .git/config separated by a :. Presumably things that are directories in the depot but do _not_ have a branch? I don't get it. What does your depot look like and what do you stick in branchList?

Show 17 quoted lines
>          branches = p4BranchesInGit(self.importIntoRemotes)
>          for branch in branches.keys():
> @@ -1626,12 +1643,14 @@ class P4Sync(Command):
>                      else:
>                          paths = []
>                          for (prev, cur) in zip(self.previousDepotPaths, depotPaths):
> -                            for i in range(0, min(len(cur), len(prev))):
> -                                if cur[i] <> prev[i]:
> +                            prev_list = prev.split("/")
> +                            cur_list = cur.split("/")
> +                            for i in range(0, min(len(cur_list), len(prev_list))):
> +                                if cur_list[i] <> prev_list[i]:
>                                      i = i - 1
>                                      break
>  
> -                            paths.append (cur[:i + 1])
> +                            paths.append ("/".join(cur_list[:i + 1]))

This was a bug? I guess somehow this is adapting the existing depot paths to include new ones that you discovered with "p4 branches". And now you are comparing the path elements instead of going a character at a time. Maybe to catch //depot/ab vs //depot/ac ?

In other words, add some comments or add something to the commit text. It is encouraged to split up a patch into the smallest logical chenk if the changes are all independent. Maybe these three are related through the theme of auto-branch detection.

		-- Pete
Previous: Vitor AntunesNext: Vitor Antunes
Message 5 of 6 in “git-p4: Improvements to rename and copy detection”
  1. 0/2 git-p4: Improvements to rename and copy detectionVitor Antunes, Feb 15, 2011
  2. 1/2 git-p4: Add copy detection supportVitor Antunes, Feb 15, 2011
  3. Pete WyckoffFeb 17, 2011
  4. 2/2 git-p4: Improve branch supportVitor Antunes, Feb 15, 2011
  5. Pete WyckoffFeb 17, 2011
  6. Vitor AntunesFeb 18, 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.