Exporting a tree from a repository

6 messages, 5 authors, 2016-06-15 · open the first message on its own page

Exporting a tree from a repository

From: Ciprian Dorin Craciun <hidden>
Date: 2016-06-15 22:43:21

    Hello all!

    I am a new GIT user, I like it, so I started playing with it for
different projects I work on.

    Currently I am playing with "Linux from Scratch", and I have
written some scripts to automatize the build process -- kind of
install scripts...

    For this I use GIT to store all the source packages -- each inside
it's own branch :).

    My question is the following: How can I export an entire tree
without using a working directory, or cloning the repository. (Because
from what I have seen so far there is no way to use the same
repository with many working directories...)

    Now I know that I can use "git archive | tar -x"... I am looking
for the same functionality but without the intermediary file... Maybe
something like "git archive --format=tree <branch>"...

    Also there is also a possible drawback by using git archive with
tar format, that is if I decide to make the repository available to
the public then it would be nice to have this export functionality...
I think this could be also used for kernel sources as an alternative
to downloading the tar.bz2 file or copying the entire tree...

    Thank you all for your feedback!
    Ciprian Craciun.

Re: Exporting a tree from a repository

From: Julian Phillips <hidden>
Date: 2016-06-15 22:43:21

On Sat, 14 Jul 2007, Ciprian Dorin Craciun wrote:
  Hello all!

  I am a new GIT user, I like it, so I started playing with it for
different projects I work on.

  Currently I am playing with "Linux from Scratch", and I have
written some scripts to automatize the build process -- kind of
install scripts...

  For this I use GIT to store all the source packages -- each inside
it's own branch :).

  My question is the following: How can I export an entire tree
without using a working directory, or cloning the repository. (Because
from what I have seen so far there is no way to use the same
repository with many working directories...)
You can have as many working directories as you want from one repository 
using the git-new-workdir script from contrib/workdir.  You do need to be 
careful when updating references though (you basically want to avoid 
updating a reference that you are using in another working directory).

You should also be able to use this to get an "export" - simply create the 
new workdir and then remove the .git (being careful not to accidentally do 
this in your actual repository).  However I expect there is a better way 
to do this ...

-- 
Julian

  ---
Quark!  Quark!  Beware the quantum duck!

Re: Exporting a tree from a repository

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:21

Julian Phillips [off-list ref] writes:
You should also be able to use this to get an "export" - simply create
the new workdir and then remove the .git (being careful not to
accidentally do this in your actual repository).  However I expect
there is a better way to do this ...
You meant "git-archive" perhaps.

Re: Exporting a tree from a repository

From: Ciprian Dorin Craciun <hidden>
Date: 2016-06-15 22:43:21

On 7/15/07, Julian Phillips [off-list ref] wrote:
On Sat, 14 Jul 2007, Ciprian Dorin Craciun wrote:
quoted
  Hello all!

  I am a new GIT user, I like it, so I started playing with it for
different projects I work on.

  Currently I am playing with "Linux from Scratch", and I have
written some scripts to automatize the build process -- kind of
install scripts...

  For this I use GIT to store all the source packages -- each inside
it's own branch :).

  My question is the following: How can I export an entire tree
without using a working directory, or cloning the repository. (Because
from what I have seen so far there is no way to use the same
repository with many working directories...)
You can have as many working directories as you want from one repository
using the git-new-workdir script from contrib/workdir.  You do need to be
careful when updating references though (you basically want to avoid
updating a reference that you are using in another working directory).

You should also be able to use this to get an "export" - simply create the
new workdir and then remove the .git (being careful not to accidentally do
this in your actual repository).  However I expect there is a better way
to do this ...

--
Julian

  ---
Quark!  Quark!  Beware the quantum duck!

    Thank you for the hint about git-new-workdir! I will try it.

    Now for the export thing... I know that I can just clone the
remote repository and then remove the .git folder, but for my purpose
I just want to have the HEAD tree downloaded, without any history...
And by using git clone I end up downloading much more than I actually
need.

    I am looking for a feature like 'svn export <repo+tree_path>
<destination_path>'...

    Ciprian.

Re: Exporting a tree from a repository

From: martin f krafft <hidden>
Date: 2016-06-15 22:43:21

also sprach Ciprian Dorin Craciun [off-list ref] [2007.07.14.2225 +0200]:
   Now I know that I can use "git archive | tar -x"... I am looking
for the same functionality but without the intermediary file... Maybe
something like "git archive --format=tree <branch>"...
There is no intermediary file.

-- 
martin;              (greetings from the heart of the sun.)
  \____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
 
spamtraps: madduck.bogus@madduck.net
 
"when I was a boy I was told
 that anybody could become president.
 now i'm beginning to believe it."
                                                    -- clarence darrow

Re: Exporting a tree from a repository

From: Alex Riesen <hidden>
Date: 2016-06-15 22:43:21

Ciprian Dorin Craciun, Sun, Jul 15, 2007 09:12:08 +0200:
   Now for the export thing... I know that I can just clone the
remote repository and then remove the .git folder, but for my purpose
I just want to have the HEAD tree downloaded, without any history...
And by using git clone I end up downloading much more than I actually
need.
Well, if you have a ssh access to remote repository, you can run
git-archive there:

    $ ssh -n 'cd /dir/repo/.git && git --bare archive --prefix=<local-path> <tree>' |tar xf -

or even simplier:

    $ git archive --remote=<remote-host:remote-path> --prefix=<local-path>/ <tree> |tar xf -

(for whatever reason it does not work with just git-daemon).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help