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

Re: [PATCHv2] clone: support cloning full bundles

From
SBSanti Béjar <sbejar@gmail.com>
Date
Feb 27, 2008, 23:16 UTC
Message-ID
<8aa486160802271516h7c2c636dna3a9f067fc51da2@mail.gmail.com>
In-Reply-To
<8aa486160802271504r7744422ag290b1f4d1725210f@mail.gmail.com>
On Thu, Feb 28, 2008 at 12:04 AM, Santi Béjar <sbejar@gmail.com> wrote:
Show 53 quoted lines
>
> On Wed, Feb 27, 2008 at 11:44 PM, Junio C Hamano <gitster@pobox.com> wrote:
>  > Santi Béjar <sbejar@gmail.com> writes:
>  >
>  >  > Signed-off-by: Santi Béjar <sbejar@gmail.com>
>  >
>  > > diff --git a/git-clone.sh b/git-clone.sh
>  >  > index 0d686c3..2efb947 100755
>  >  > --- a/git-clone.sh
>  >  > +++ b/git-clone.sh
>  >  > @@ -210,11 +210,14 @@ if base=$(get_repo_base "$repo"); then
>  >  >       then
>  >  >               local=yes
>  >  >       fi
>  >  > +elif [ -f "$repo" ] ; then
>  >  > +     case "$repo" in /*);; *) repo="$PWD/$repo" ; esac
>  >  >  fi
>  >  >
>  >  >  dir="$2"
>  >  >  # Try using "humanish" part of source repo if user didn't specify one
>  >  >  [ -z "$dir" ] && dir=$(echo "$repo" | sed -e 's|/$||' -e 's|:*/*\.git$||' -e 's|.*[/:]||g')
>  >  > +[ -f "$dir" ] && dir=$(expr "$repo" : '.*/\([^/]*\)\.[^/]*')
>  >  >  [ -e "$dir" ] && die "destination directory '$dir' already exists."
>  >  >  [ yes = "$bare" ] && unset GIT_WORK_TREE
>  >  >  [ -n "$GIT_WORK_TREE" ] && [ -e "$GIT_WORK_TREE" ] &&
>  >
>  >  What is this [ -f "$dir" ] line doing?  The purpose of these
>  >  lines is:
>  >
>  >   - The user (might have) said "clone to $2";
>  >
>  >   - If the user didn't, then set dir to humanish part;
>  >
>  >   - If that exists, we barf.
>  >
>  >  I do not see any valid reason for an additional logic in this
>  >  sequence when adding a new clone _source_ type.
>  >
>  >  The check to see if "$dir" _exists_ is even worse.  If the user
>  >  said "clone _to_ this", then we would not have invented $dir
>  >  based on the $repo (which is what the user said "clone _from_")
>  >  but used whatever name the user has given us.  The existing
>  >  check to barf "Hey, that explicit location you told me to clone
>  >  to is WRONG!!!" should not be broken.
>  >
>
>  Oops, I did not thought about that possibility. The check was to be
>  able to clone a bundle that was in the local directory. So:
>
>  $ git clone git.bundle
>
>  clones git.bundle to the directory git. Maybe we can add an && in the
>  previous line
and check for [ -f "$repo" ] insted of [ -f "$dir" ]
Show 6 quoted lines
>  , or we can say simply that to clone a bundle in the same
>  directory you have to specify explicitly where to clone.
>
>  In another patch we could add an "official" extension to the bundles
>  (the same way as with the repositories "*.git") as project.bdl or
>  project.bundle and just remove this extension.
My preference are in order:
1) define an official extension + the && [ -f "$repo" ]
2) the && [ -f "$repo"]
3) just remove this line
but not that strong.
Santi
Previous: Santi BéjarNext: Daniel Barkalow
Message 7 of 12 in “[PATCHv2] clone: support cloning full bundles”
  1. Santi BéjarFeb 25, 2008
  2. Junio C HamanoFeb 25, 2008
  3. Santi BéjarFeb 25, 2008
  4. Junio C HamanoFeb 25, 2008
  5. Junio C HamanoFeb 27, 2008
  6. Santi BéjarFeb 27, 2008
  7. Santi BéjarFeb 27, 2008
  8. Daniel BarkalowFeb 27, 2008
  9. Junio C HamanoFeb 28, 2008
  10. Johannes SchindelinFeb 28, 2008
  11. Santi BéjarFeb 28, 2008
  12. Mark LevedahlFeb 29, 2008

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.