Creating a tarball out of a directory in a bare git repository
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.
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
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