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

Re: [PATCH 8/8] git-p4: support clone --bare

From
Tor Arvid Lund <torarvid@gmail.com>
Date
Feb 8, 2011, 09:18 UTC
Message-ID
<AANLkTinmttwtgF+RdG7Sr9aMi=awKeWZnHVME+9Z_Np+@mail.gmail.com>
In-Reply-To
<20110205225247.GI30963@arf.padd.com>
On Sat, Feb 5, 2011 at 11:52 PM, Pete Wyckoff <pw@padd.com> wrote:
> Just like git clone --bare, build a .git directory but no
> checked out files.
>
> Signed-off-by: Pete Wyckoff <pw@padd.com>
Acked-By: Tor Arvid Lund <torarvid@gmail.com>
Show 82 quoted lines
> ---
>  contrib/fast-import/git-p4 |   17 +++++++++++++----
>  t/t9800-git-p4.sh          |   10 ++++++++++
>  2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
> index 5b08cd6..efc5dce 100755
> --- a/contrib/fast-import/git-p4
> +++ b/contrib/fast-import/git-p4
> @@ -1771,10 +1771,13 @@ class P4Clone(P4Sync):
>                                  help="where to leave result of the clone"),
>             optparse.make_option("-/", dest="cloneExclude",
>                                  action="append", type="string",
> -                                 help="exclude depot path")
> +                                 help="exclude depot path"),
> +            optparse.make_option("--bare", dest="cloneBare",
> +                                 action="store_true", default=False),
>         ]
>         self.cloneDestination = None
>         self.needsGit = False
> +        self.cloneBare = False
>
>     # This is required for the "append" cloneExclude action
>     def ensure_value(self, attr, value):
> @@ -1814,11 +1817,16 @@ class P4Clone(P4Sync):
>             self.cloneDestination = self.defaultDestination(args)
>
>         print "Importing from %s into %s" % (', '.join(depotPaths), self.cloneDestination)
> +
>         if not os.path.exists(self.cloneDestination):
>             os.makedirs(self.cloneDestination)
>         chdir(self.cloneDestination)
> -        system("git init")
> -        self.gitdir = os.getcwd() + "/.git"
> +
> +        init_cmd = [ "git", "init" ]
> +        if self.cloneBare:
> +            init_cmd.append("--bare")
> +        subprocess.check_call(init_cmd)
> +
>         if not P4Sync.run(self, depotPaths):
>             return False
>         if self.branch != "master":
> @@ -1828,7 +1836,8 @@ class P4Clone(P4Sync):
>                 masterbranch = "refs/heads/p4/master"
>             if gitBranchExists(masterbranch):
>                 system("git branch master %s" % masterbranch)
> -                system("git checkout -f")
> +                if not self.cloneBare:
> +                    system("git checkout -f")
>             else:
>                 print "Could not detect main branch. No checkout/master branch created."
>
> diff --git a/t/t9800-git-p4.sh b/t/t9800-git-p4.sh
> index 72c38af..1e7639b 100755
> --- a/t/t9800-git-p4.sh
> +++ b/t/t9800-git-p4.sh
> @@ -87,6 +87,16 @@ test_expect_success 'wildcard files git-p4 clone' '
>        rm -rf "$git" && mkdir "$git"
>  '
>
> +test_expect_success 'clone bare' '
> +       "$GITP4" clone --dest="$git" --bare //depot &&
> +       cd "$git" &&
> +       test ! -d .git &&
> +       bare=`git config --get core.bare` &&
> +       test "$bare" = true &&
> +       cd "$TRASH_DIRECTORY" &&
> +       rm -rf "$git" && mkdir "$git"
> +'
> +
>  test_expect_success 'shutdown' '
>        pid=`pgrep -f p4d` &&
>        test -n "$pid" &&
> --
> 1.7.2.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Previous: Pete Wyckoff
Message 18 of 18 in “git-p4 fixes and enhancements”
  1. 0/8 git-p4 fixes and enhancementsPete Wyckoff, Feb 5, 2011
  2. 1/8 git-p4: test scriptPete Wyckoff, Feb 5, 2011
  3. Vitor AntunesFeb 6, 2011
  4. Junio C HamanoFeb 7, 2011
  5. Pete WyckoffFeb 7, 2011
  6. 2/8 git-p4: fix key error for p4 problemPete Wyckoff, Feb 5, 2011
  7. 3/8 git-p4: add missing newline in initial import messagePete Wyckoff, Feb 5, 2011
  8. Tor Arvid LundFeb 8, 2011
  9. 4/8 git-p4: accommodate new move/delete type in p4Pete Wyckoff, Feb 5, 2011
  10. Tor Arvid LundFeb 8, 2011
  11. 5/8 git-p4: reinterpret confusing p4 messagePete Wyckoff, Feb 5, 2011
  12. 6/8 git-p4: better message for "git-p4 sync" when not clonedPete Wyckoff, Feb 5, 2011
  13. Tor Arvid LundFeb 8, 2011
  14. 7/8 git-p4: decode p4 wildcard charactersPete Wyckoff, Feb 5, 2011
  15. Tor Arvid LundFeb 8, 2011
  16. Pete WyckoffFeb 8, 2011
  17. 8/8 git-p4: support clone --barePete Wyckoff, Feb 5, 2011
  18. Tor Arvid LundFeb 8, 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.