{"thread":{"id":"29925","subject":"GIT & Symbolic Links","startedAt":"2012-03-12T16:44:46Z","lastAt":"2012-03-17T17:05:12Z","messageCount":4,"participants":["Sassy Natan","Kevin","Enrico Weigelt","Andrew Sayers"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"186743","messageId":"CACHQFzEJATc2hiSdAgoGg3vssQ-CShF+89TOkzVwaf_ujYy+3w@mail.gmail.com","threadId":"29925","inReplyTo":"CACHQFzEqe-SwpCgjgGRDdzcUQW_+8-TdLsRV6KbKorvq7dJi+g@mail.gmail.com","subject":"GIT & Symbolic Links","fromName":"Sassy Natan","fromEmail":"sassyn@gmail.com","sentAt":"2012-03-12T16:44:46Z","receivedAt":"2012-03-12T16:44:46Z","isPatch":false,"sender":{"key":"sassyn@gmail.com","avatar":null},"body":"Hi Group,\n\nI'm consider myself as a new baby when it come to GiT.\nBut I have just migrate my users from SVN to GIT and I have some\nquestions in mind I want to share with you.\n\nIs it possible to do the following:\n\nSay I have a really big GiT repo (something around 1GB) name DEV.\nIn the SVN days, each of my developers (100 Users) had to clone a\nlocal copy of the DEV Repo in his home folder, so total of 100GB was\nused in my shared storage (NFS Drive) where something around 85% was\nactually just a copy of the same files.\n\nWhen I used the De-Duplication function (Under ZFS File System) I\ncould easy see how the volume is shrinking, but I more inserting in\ndifferent kind of solution, now when it comes to GIT.\n\nSo for the example let's consider that user A clone the DEV GIT Repo\ninto his/her home folder (/home/A/DEV)\nUser B want to clone the same Repo. But now, I don't want user B to\nclone the all tree and files, but instead to have a symbolic links to\nthe /home/A/DEV folder.\nAll files and directories in the /home/B/DEV will be a links to the /home/A/DEV.\n\nOnce user B actually want to change a file, ?somehow? the git brake\nthe link, and have a local copy of that specific file.\nWhen the file is push back the link become back.\n\nWhile trying to get some feedback in the IRC roon, some users point me\nto git-annex and unionfs.\nBoth project seems to be cool, git-annex really have nice options, but\nI don't see how this going to help me.\n\nRegarding unionfs - well I'm still not sure.\n\nMaybe someone can help here...\n\nThanks\n"},{"id":"186830","messageId":"CAO54GHDgvoHdF3x8+kZwJ2XfB9Tyk1_xwrbfKux-b6wxS9koGw@mail.gmail.com","threadId":"29925","inReplyTo":"CACHQFzEJATc2hiSdAgoGg3vssQ-CShF+89TOkzVwaf_ujYy+3w@mail.gmail.com","subject":"Re: GIT & Symbolic Links","fromName":"Kevin","fromEmail":"ikke@ikke.info","sentAt":"2012-03-13T10:06:33Z","receivedAt":"2012-03-13T10:06:33Z","isPatch":false,"sender":{"key":"ikke@ikke.info","avatar":"https://gravatar.com/avatar/60a0d08eeccb16914fdbfc7f3441548dc827dc436d5c6900ec6600e274e53c5b?d=mp&s=160"},"body":"As the IRC channel already concluded, git itself has no option to\n'break' symbolic links on write, as git is not the only one editing\nthese files, but your editor does too.\n\nThis is why this is never going to work without the support of your\neditor, or with something more low level, like file system support\n\nOn Mon, Mar 12, 2012 at 5:44 PM, Sassy Natan <sassyn@gmail.com> wrote:\n> Hi Group,\n>\n> I'm consider myself as a new baby when it come to GiT.\n> But I have just migrate my users from SVN to GIT and I have some\n> questions in mind I want to share with you.\n>\n> Is it possible to do the following:\n>\n> Say I have a really big GiT repo (something around 1GB) name DEV.\n> In the SVN days, each of my developers (100 Users) had to clone a\n> local copy of the DEV Repo in his home folder, so total of 100GB was\n> used in my shared storage (NFS Drive) where something around 85% was\n> actually just a copy of the same files.\n>\n> When I used the De-Duplication function (Under ZFS File System) I\n> could easy see how the volume is shrinking, but I more inserting in\n> different kind of solution, now when it comes to GIT.\n>\n> So for the example let's consider that user A clone the DEV GIT Repo\n> into his/her home folder (/home/A/DEV)\n> User B want to clone the same Repo. But now, I don't want user B to\n> clone the all tree and files, but instead to have a symbolic links to\n> the /home/A/DEV folder.\n> All files and directories in the /home/B/DEV will be a links to the /home/A/DEV.\n>\n> Once user B actually want to change a file, ?somehow? the git brake\n> the link, and have a local copy of that specific file.\n> When the file is push back the link become back.\n>\n> While trying to get some feedback in the IRC roon, some users point me\n> to git-annex and unionfs.\n> Both project seems to be cool, git-annex really have nice options, but\n> I don't see how this going to help me.\n>\n> Regarding unionfs - well I'm still not sure.\n>\n> Maybe someone can help here...\n>\n> Thanks\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"},{"id":"187161","messageId":"20120317160015.GB18712@mailgate.onlinehome-server.info","threadId":"29925","inReplyTo":"CACHQFzEJATc2hiSdAgoGg3vssQ-CShF+89TOkzVwaf_ujYy+3w@mail.gmail.com","subject":"Re: GIT & Symbolic Links","fromName":"Enrico Weigelt","fromEmail":"weigelt@metux.de","sentAt":"2012-03-17T16:00:15Z","receivedAt":"2012-03-17T16:00:15Z","isPatch":false,"sender":{"key":"weigelt@metux.de","avatar":null},"body":"* Sassy Natan <sassyn@gmail.com> wrote:\n\nHi,\n\n> So for the example let's consider that user A clone the DEV GIT Repo\n> into his/her home folder (/home/A/DEV)\n> User B want to clone the same Repo. But now, I don't want user B to\n> clone the all tree and files, but instead to have a symbolic links to\n> the /home/A/DEV folder.\n> All files and directories in the /home/B/DEV will be a links to the /home/A/DEV.\n\nSymlinks wont fit here, as the userland sees them as links (and treats\nthem as such). What you're looking for is some solution that does the cow\nstuff hidden from the normal userland. Perhaps via unionfs or something\nfuse-based.\n\nBUT: I'd first raise the question if your tree needs to be that big\nat all. Perhaps it should be splitted into several smaller ones.\nWhat actually does your tree make that big ?\n\n\ncu\n-- \n----------------------------------------------------------------------\n Enrico Weigelt, metux IT service -- http://www.metux.de/\n\n phone:  +49 36207 519931  email: weigelt@metux.de\n mobile: +49 151 27565287  icq:   210169427         skype: nekrad666\n----------------------------------------------------------------------\n Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme\n----------------------------------------------------------------------\n"},{"id":"187166","messageId":"4F64C448.5040108@pileofstuff.org","threadId":"29925","inReplyTo":"CACHQFzEJATc2hiSdAgoGg3vssQ-CShF+89TOkzVwaf_ujYy+3w@mail.gmail.com","subject":"Re: GIT & Symbolic Links","fromName":"Andrew Sayers","fromEmail":"andrew-git@pileofstuff.org","sentAt":"2012-03-17T17:05:12Z","receivedAt":"2012-03-17T17:05:12Z","isPatch":false,"sender":{"key":"andrew-git@pileofstuff.org","avatar":null},"body":"Not really an answer to your question, but `git-relink` will\nde-duplicate the contents of your .git directory using hardlinks.  Your\nactual files will remain as big as ever, but the (potentially much\nlarger) git storage for older versions will take considerably less disk\nspace.\n\n\t- Andrew\n"}]}