All of lore.kernel.org
 help / color / mirror / Atom feed
* Please consider adding a -f switch to git-clone (or something similar)
@ 2015-03-07 21:54 Diego Viola
  2015-03-07 22:26 ` Andreas Schwab
  0 siblings, 1 reply; 7+ messages in thread
From: Diego Viola @ 2015-03-07 21:54 UTC (permalink / raw)
  To: git

Hello,

I was thinking about creating a new repository in my home dir so that I could
keep my dot files in it.

However, I found that I can't do a `git clone url:user/repo.git .` in a
non-empty directory.

Is there a possibility of implementing a -f switch to git-clone so that when I
use that, git would still clone the repo in the non-empty directory and keep the
untracked files untracked/unstaged? (just as if I copied files to the git repo).

I know I could git-init in a empty directory and then copy the .git dir to the
non-empty directory as a workaround, but I like the idea of cloning better.

My C skills aren't that great or I would have sent a patch already.

Thanks,

Diego

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Please consider adding a -f switch to git-clone (or something similar)
  2015-03-07 21:54 Please consider adding a -f switch to git-clone (or something similar) Diego Viola
@ 2015-03-07 22:26 ` Andreas Schwab
  2015-03-07 22:53   ` brian m. carlson
  2015-03-08  0:02   ` Diego Viola
  0 siblings, 2 replies; 7+ messages in thread
From: Andreas Schwab @ 2015-03-07 22:26 UTC (permalink / raw)
  To: Diego Viola; +Cc: git

Diego Viola <diego.viola@gmail.com> writes:

> I know I could git-init in a empty directory

You can also git init a non-empty directory.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Please consider adding a -f switch to git-clone (or something similar)
  2015-03-07 22:26 ` Andreas Schwab
@ 2015-03-07 22:53   ` brian m. carlson
  2015-03-08  0:02   ` Diego Viola
  1 sibling, 0 replies; 7+ messages in thread
From: brian m. carlson @ 2015-03-07 22:53 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Diego Viola, git

[-- Attachment #1: Type: text/plain, Size: 1007 bytes --]

On Sat, Mar 07, 2015 at 11:26:28PM +0100, Andreas Schwab wrote:
>Diego Viola <diego.viola@gmail.com> writes:
>
>> I know I could git-init in a empty directory
>
>You can also git init a non-empty directory.

I have a script to set up a new throwaway VM with my dotfiles using git.
It looks a bit like the following ($BRANCH != master):

  SSH="ssh $DEST"
  
  $SSH "cd; $GIT init"
  git push --receive-pack=$GIT-receive-pack $DEST:~/.git $BRANCH
  $SSH "
      $GIT pull . $BRANCH
      $GIT submodule update --init
  "

It relies on the ability to git init a non-empty directory.  $BRANCH can 
be master if you use the new updateInstead functionality in git 2.3.0, 
and you can use git pull from a remote location instead of the push/pull 
pair if that suits you better.
-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only
OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Please consider adding a -f switch to git-clone (or something similar)
  2015-03-07 22:26 ` Andreas Schwab
  2015-03-07 22:53   ` brian m. carlson
@ 2015-03-08  0:02   ` Diego Viola
  2015-03-08  1:53     ` Diego Viola
  1 sibling, 1 reply; 7+ messages in thread
From: Diego Viola @ 2015-03-08  0:02 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: git

Sorry, I wanted to say: I know I can git-clone in a empty directory
and then move the files over to $HOME.

I know I can git init in a non-empty directory. :-)

Thanks,

Diego

On Sat, Mar 7, 2015 at 7:26 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Diego Viola <diego.viola@gmail.com> writes:
>
>> I know I could git-init in a empty directory
>
> You can also git init a non-empty directory.
>
> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
> "And now for something completely different."

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Please consider adding a -f switch to git-clone (or something similar)
  2015-03-08  0:02   ` Diego Viola
@ 2015-03-08  1:53     ` Diego Viola
  2015-03-08  2:32       ` Kyle J. McKay
  0 siblings, 1 reply; 7+ messages in thread
From: Diego Viola @ 2015-03-08  1:53 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: git

Something like this is the scenario I'm talking about:

$ mkdir non-empty-dir
$ cd non-empty-dir
$ touch foo bar baz
$ git clone -f url:user/dotfiles.git .
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    bar
    baz
    foo

nothing added to commit but untracked files present (use "git add" to track)


On Sat, Mar 7, 2015 at 9:02 PM, Diego Viola <diego.viola@gmail.com> wrote:
> Sorry, I wanted to say: I know I can git-clone in a empty directory
> and then move the files over to $HOME.
>
> I know I can git init in a non-empty directory. :-)
>
> Thanks,
>
> Diego
>
> On Sat, Mar 7, 2015 at 7:26 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> Diego Viola <diego.viola@gmail.com> writes:
>>
>>> I know I could git-init in a empty directory
>>
>> You can also git init a non-empty directory.
>>
>> Andreas.
>>
>> --
>> Andreas Schwab, schwab@linux-m68k.org
>> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
>> "And now for something completely different."

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Please consider adding a -f switch to git-clone (or something similar)
  2015-03-08  1:53     ` Diego Viola
@ 2015-03-08  2:32       ` Kyle J. McKay
  2015-03-08 18:27         ` Diego Viola
  0 siblings, 1 reply; 7+ messages in thread
From: Kyle J. McKay @ 2015-03-08  2:32 UTC (permalink / raw)
  To: Diego Viola; +Cc: Git Mailing List

On Mar 7, 2015, at 17:53, Diego Viola wrote:
> Something like this is the scenario I'm talking about:
>
> $ mkdir non-empty-dir
> $ cd non-empty-dir
> $ touch foo bar baz
> $ git clone -f url:user/dotfiles.git .
> $ git status
> On branch master
> Your branch is up-to-date with 'origin/master'.
> Untracked files:
>  (use "git add <file>..." to include in what will be committed)
>
>    bar
>    baz
>    foo
>
> nothing added to commit but untracked files present (use "git add"  
> to track)

Have you considered using an alias?

git config --global alias.irfc \
   '!sh -c '\''git init && git remote add origin "$1" && git fetch &&  
git checkout "${2:-master}"'\'' sh'

(You'll likely have to carefully unwrap that line above.)

Then you get

   git irfc <URL> [<branch>]

where <branch> defaults to master.
So your scenario would become just:



$ mkdir non-empty-dir
$ cd non-empty-dir
$ touch foo bar baz
$ git irfc url:user/dotfiles.git
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    bar
    baz
    foo

nothing added to commit but untracked files present (use "git add" to  
track)


-Kyle

P.S. irfc = init, remote, fetch, checkout.  But do make up a better  
name. :)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Please consider adding a -f switch to git-clone (or something similar)
  2015-03-08  2:32       ` Kyle J. McKay
@ 2015-03-08 18:27         ` Diego Viola
  0 siblings, 0 replies; 7+ messages in thread
From: Diego Viola @ 2015-03-08 18:27 UTC (permalink / raw)
  To: Kyle J. McKay; +Cc: Git Mailing List

Kyle,

Thanks, I suppose that works well enough for my needs. I wasn't aware
that aliases were that flexible in git.

I also have no problem to git-init and do all the other steps manually.

Thanks,

Diego

On Sat, Mar 7, 2015 at 11:32 PM, Kyle J. McKay <mackyle@gmail.com> wrote:
> On Mar 7, 2015, at 17:53, Diego Viola wrote:
>>
>> Something like this is the scenario I'm talking about:
>>
>> $ mkdir non-empty-dir
>> $ cd non-empty-dir
>> $ touch foo bar baz
>> $ git clone -f url:user/dotfiles.git .
>> $ git status
>> On branch master
>> Your branch is up-to-date with 'origin/master'.
>> Untracked files:
>>  (use "git add <file>..." to include in what will be committed)
>>
>>    bar
>>    baz
>>    foo
>>
>> nothing added to commit but untracked files present (use "git add" to
>> track)
>
>
> Have you considered using an alias?
>
> git config --global alias.irfc \
>   '!sh -c '\''git init && git remote add origin "$1" && git fetch && git
> checkout "${2:-master}"'\'' sh'
>
> (You'll likely have to carefully unwrap that line above.)
>
> Then you get
>
>   git irfc <URL> [<branch>]
>
> where <branch> defaults to master.
> So your scenario would become just:
>
>
>
> $ mkdir non-empty-dir
> $ cd non-empty-dir
> $ touch foo bar baz
> $ git irfc url:user/dotfiles.git
> $ git status
> On branch master
> Your branch is up-to-date with 'origin/master'.
> Untracked files:
>  (use "git add <file>..." to include in what will be committed)
>
>    bar
>    baz
>    foo
>
> nothing added to commit but untracked files present (use "git add" to track)
>
>
> -Kyle
>
> P.S. irfc = init, remote, fetch, checkout.  But do make up a better name. :)

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-03-08 18:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-07 21:54 Please consider adding a -f switch to git-clone (or something similar) Diego Viola
2015-03-07 22:26 ` Andreas Schwab
2015-03-07 22:53   ` brian m. carlson
2015-03-08  0:02   ` Diego Viola
2015-03-08  1:53     ` Diego Viola
2015-03-08  2:32       ` Kyle J. McKay
2015-03-08 18:27         ` Diego Viola

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.