threads / discuss / 22873

Creating a tarball out of a directory in a bare git repository

Subject: Creating a tarball out of a directory in a bare git repository

## tl;dr

3 messages between Mar 1, 2010 and Mar 1, 2010.

replies: 2people: 3as markdown or json

jateeq· Mar 1, 2010, 22:47 UTC · lore
Hello,

I am developing a web interface, part of which allows the user to download a tarball of a directory (which is in a bare repostitory on the filesystem) on clicking on a link.

This is how I am planning on doing it. Just wanted to assess whether this is efficient enough, or if anyone knows of a better way. I haven't tried this out yet though, so I don't know if it will work at all.

- list all the files/folders in the directory (i have the sha1 hash of the
directory)
- foreach file in the directory, get the file contents (recurse if there are
further subdirectories). Probably store the result in an array. 
- create a file somewhere on the filesystem out of each file output above.
Store it under the directory name.
- create a tarball out of the 'working' directory as usual.

I was wondering if I can get away without having to create a working version out of the bare version of the directory (create each file in the directory and store it somewhere on the filesystem), and then compress it as usual.

I hope someone has a much simpler answer to this problem!

Thanks, Jawad.

-- 
View this message in context: http://old.nabble.com/Creating-a-tarball-out-of-a-directory-in-a-bare-git-repository-tp27750115p27750115.html
Sent from the git mailing list archive at Nabble.com.
Julian Phillips· Mar 1, 2010, 23:00 UTC · re: jateeq · lore

Re: Creating a tarball out of a directory in a bare git repository

On Mon, 1 Mar 2010 14:47:45 -0800 (PST), jateeq <jawad_atiq@hotmail.com> wrote:

> Hello,
> 
> I am developing a web interface, part of which allows the user to
download
> a
> tarball of a directory (which is in a bare repostitory on the
filesystem)
> on
> clicking on a link.
[..snip..]
> I hope someone has a much simpler answer to this problem!
Have a look at "git archive":
http://www.kernel.org/pub/software/scm/git/docs/git-archive.html
-- 
Julian
Randal L. Schwartz· Mar 1, 2010, 23:00 UTC · re: jateeq · lore

Re: Creating a tarball out of a directory in a bare git repository

>>>>> "jateeq" == jateeq  <jawad_atiq@hotmail.com> writes:

jateeq> - list all the files/folders in the directory (i have the sha1 hash of the jateeq> directory) jateeq> - foreach file in the directory, get the file contents (recurse if there are jateeq> further subdirectories). Probably store the result in an array. jateeq> - create a file somewhere on the filesystem out of each file output above. jateeq> Store it under the directory name. jateeq> - create a tarball out of the 'working' directory as usual.

Sounds like you're reinventing "git archive". :)
-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion

← back to recent threads