Skip to contentSkip to conversation

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

DISCUSSION jateeq 3 participants 3 messages Jun 15, 2016

lore
Share & tools
lore

jateeq

author
#0 lore raw

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.

Signature · 2 lines
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.
#1 lore raw
Quoted 3 lines · jateeq

Hello,

I am developing a web interface, part of which allows the user to

download

Quoted 2 lines

a
tarball of a directory (which is in a bare repostitory on the

filesystem)

Quoted 2 lines

on
clicking on a link.

[..snip..]

Quoted 1 line

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

Signature · 1 line
Julian
#2 lore raw
In reply to jateeq
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"jateeq" == jateeq <[email protected]> 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". :)

Signature · 4 lines
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[email protected]> <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