{"thread":{"id":"34670","subject":"git clone doesn't work in symlink dir roots on Windows","startedAt":"2013-08-10T12:10:49Z","lastAt":"2013-09-08T23:40:09Z","messageCount":12,"participants":["Sedat Kapanoglu","Fredrik Gustafsson","Erik Faye-Lund","Michael Geddes","MNGoldenEagle","Michael"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"225015","messageId":"CABJxLaM9t1HeEVkAiXpOmaOH_V6681w9Q9ZQt37+MpmhX7yN2g@mail.gmail.com","threadId":"34670","inReplyTo":null,"subject":"git clone doesn't work in symlink dir roots on Windows","fromName":"Sedat Kapanoglu","fromEmail":"sedat@eksiteknoloji.com","sentAt":"2013-08-10T12:10:49Z","receivedAt":"2013-08-10T12:10:49Z","isPatch":false,"sender":{"key":"sedat@eksiteknoloji.com","avatar":"https://gravatar.com/avatar/56a2df1a42ac4198e4a2ece45eb20a6ef20f23db5c0ba18547f56f2e35176bf6?d=mp&s=160"},"body":"Hi,\n\nI verified this behavior on Git 1.7.8 and 1.8.3.\n\nMy D:\\src folder is a symlink to another folder in my Google Drive, created\nby Windows command mklink /d d:\\src \"d:\\Google Drive\\src\"\n\nD:\\src>git clone https://github.com/jlewallen/jenkins-hipchat-plugin.git\nCloning into 'jenkins-hipchat-plugin'...\nfatal: Invalid symlink 'D:/src': Function not implemented\n\nThe same error is shown with the bash prompt too:\n\n$ git clone https://github.com/jlewallen/jenkins-hipchat-plugin.git\nCloning into 'jenkins-hipchat-plugin'...\nfatal: Invalid symlink 'd:/src': Function not implemented\n\nIf I go one directory below (D:\\src\\somethingelse) the command works fine\nbut not at the root of the symlink directory.\n\nThanks,\n\nSedat\n"},{"id":"225017","messageId":"20130810125140.GD25779@paksenarrion.iveqy.com","threadId":"34670","inReplyTo":"CABJxLaM9t1HeEVkAiXpOmaOH_V6681w9Q9ZQt37+MpmhX7yN2g@mail.gmail.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Fredrik Gustafsson","fromEmail":"iveqy@iveqy.com","sentAt":"2013-08-10T12:51:40Z","receivedAt":"2013-08-10T12:51:40Z","isPatch":false,"sender":{"key":"iveqy@iveqy.com","avatar":"https://avatars.githubusercontent.com/u/761743?v=4"},"body":"On Sat, Aug 10, 2013 at 03:10:49PM +0300, Sedat Kapanoglu wrote:\n> My D:\\src folder is a symlink to another folder in my Google Drive, created\n> by Windows command mklink /d d:\\src \"d:\\Google Drive\\src\"\n> \n> D:\\src>git clone https://github.com/jlewallen/jenkins-hipchat-plugin.git\n> Cloning into 'jenkins-hipchat-plugin'...\n> fatal: Invalid symlink 'D:/src': Function not implemented\n\ngit is a disk intense program, so this setup is not sane at all. With\nthat said I know that git on windows historically had problems with\nworking on smb-mounted shares (sometimes you're forced to have stupid\nsetups). I doubt that git really is the right tool for your work, since\nyou're using a decentralized tool in a centralized work flow. Maybe\nsomething like subversion would suite you better. (or just simple use a\nhosting service such as github/bitbucket/your own server).\n\nHowever I can't find that error message in the git source code which\nmake me wonder if this actually is a git problem. Could you investigate\nmore on where that error message comes from?\n\nUsing dropbox git users have experienced corrupt repositories due to the\ndropbox sync algoritm isn't suited for the git file access patterns, I\nwould imagine that you could have the same problems using google drive.\n\n-- \nMed vänliga hälsningar\nFredrik Gustafsson\n\ntel: 0733-608274\ne-post: iveqy@iveqy.com\n"},{"id":"225025","messageId":"CABJxLaOaUYxyAsy5mpciiAObmoazFpwB0T4C20cu3eHuSpEpAg@mail.gmail.com","threadId":"34670","inReplyTo":"20130810125140.GD25779@paksenarrion.iveqy.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Sedat Kapanoglu","fromEmail":"sedat@eksiteknoloji.com","sentAt":"2013-08-10T16:22:03Z","receivedAt":"2013-08-10T16:22:03Z","isPatch":false,"sender":{"key":"sedat@eksiteknoloji.com","avatar":"https://gravatar.com/avatar/56a2df1a42ac4198e4a2ece45eb20a6ef20f23db5c0ba18547f56f2e35176bf6?d=mp&s=160"},"body":"> git is a disk intense program, so this setup is not sane at all. With\n> that said I know that git on windows historically had problems with\n> working on smb-mounted shares (sometimes you're forced to have stupid\n> setups). I doubt that git really is the right tool for your work, since\n\nI reproduced the same problem in a regular symlink directory. Repro steps:\n\nmkdir actualdir\nmklink /d symdir actualdir\ncd symdir\ngit init .\n\nfatal: Invalid symlink 'D:/gitto': Function not implemented\n\nThanks,\n\nSedat\n"},{"id":"225026","messageId":"CABJxLaOvMQcBqGMbdKm9oAd_sxJb_Q2f59vr6S=GfXeYUFxGhg@mail.gmail.com","threadId":"34670","inReplyTo":"CABJxLaOaUYxyAsy5mpciiAObmoazFpwB0T4C20cu3eHuSpEpAg@mail.gmail.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Sedat Kapanoglu","fromEmail":"sedat@eksiteknoloji.com","sentAt":"2013-08-10T16:22:27Z","receivedAt":"2013-08-10T16:22:27Z","isPatch":false,"sender":{"key":"sedat@eksiteknoloji.com","avatar":"https://gravatar.com/avatar/56a2df1a42ac4198e4a2ece45eb20a6ef20f23db5c0ba18547f56f2e35176bf6?d=mp&s=160"},"body":"(my symdir was called 'gitto', fyi)\n\nOn Sat, Aug 10, 2013 at 7:22 PM, Sedat Kapanoglu\n<sedat@eksiteknoloji.com> wrote:\n>> git is a disk intense program, so this setup is not sane at all. With\n>> that said I know that git on windows historically had problems with\n>> working on smb-mounted shares (sometimes you're forced to have stupid\n>> setups). I doubt that git really is the right tool for your work, since\n>\n> I reproduced the same problem in a regular symlink directory. Repro steps:\n>\n> mkdir actualdir\n> mklink /d symdir actualdir\n> cd symdir\n> git init .\n>\n> fatal: Invalid symlink 'D:/gitto': Function not implemented\n>\n> Thanks,\n>\n> Sedat\n"},{"id":"225027","messageId":"20130810163459.GE25779@paksenarrion.iveqy.com","threadId":"34670","inReplyTo":"CABJxLaOaUYxyAsy5mpciiAObmoazFpwB0T4C20cu3eHuSpEpAg@mail.gmail.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Fredrik Gustafsson","fromEmail":"iveqy@iveqy.com","sentAt":"2013-08-10T16:34:59Z","receivedAt":"2013-08-10T16:34:59Z","isPatch":false,"sender":{"key":"iveqy@iveqy.com","avatar":"https://avatars.githubusercontent.com/u/761743?v=4"},"body":"On Sat, Aug 10, 2013 at 07:22:03PM +0300, Sedat Kapanoglu wrote:\n> > git is a disk intense program, so this setup is not sane at all. With\n> > that said I know that git on windows historically had problems with\n> > working on smb-mounted shares (sometimes you're forced to have stupid\n> > setups). I doubt that git really is the right tool for your work, since\n> \n> I reproduced the same problem in a regular symlink directory. Repro steps:\n> \n> mkdir actualdir\n> mklink /d symdir actualdir\n> cd symdir\n> git init .\n> \n> fatal: Invalid symlink 'D:/gitto': Function not implemented\n> \n> Thanks,\n> \n> Sedat\n\nGood, then we can determinate that this is a symlink error, it seams\nthat readlink() isn't implemented in the msysgit version of msysgit.\n\nHowever msysgit should have a implementation of readlink() according to:\nhttp://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n\nI've CC:ed the msysgit-maillist so that they can decide if this is\nsomething they want to address in newer releases.\n\n(In the git source code the readlink call in this abspath.c)\n\n-- \nMed vänliga hälsningar\nFredrik Gustafsson\n\ntel: 0733-608274\ne-post: iveqy@iveqy.com\n"},{"id":"225039","messageId":"CABPQNSaU_69RxNEAAY0=BYdJm0ir_xkOkd2nPaxop7m0aJ9trg@mail.gmail.com","threadId":"34670","inReplyTo":"20130810163459.GE25779@paksenarrion.iveqy.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2013-08-11T03:04:13Z","receivedAt":"2013-08-11T03:04:13Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Sat, Aug 10, 2013 at 6:34 PM, Fredrik Gustafsson <iveqy@iveqy.com> wrote:\n> On Sat, Aug 10, 2013 at 07:22:03PM +0300, Sedat Kapanoglu wrote:\n>> > git is a disk intense program, so this setup is not sane at all. With\n>> > that said I know that git on windows historically had problems with\n>> > working on smb-mounted shares (sometimes you're forced to have stupid\n>> > setups). I doubt that git really is the right tool for your work, since\n>>\n>> I reproduced the same problem in a regular symlink directory. Repro steps:\n>>\n>> mkdir actualdir\n>> mklink /d symdir actualdir\n>> cd symdir\n>> git init .\n>>\n>> fatal: Invalid symlink 'D:/gitto': Function not implemented\n>>\n>> Thanks,\n>>\n>> Sedat\n>\n> Good, then we can determinate that this is a symlink error, it seams\n> that readlink() isn't implemented in the msysgit version of msysgit.\n>\n> However msysgit should have a implementation of readlink() according to:\n> http://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n>\n> I've CC:ed the msysgit-maillist so that they can decide if this is\n> something they want to address in newer releases.\n\nNo, we do not. (I won't be bothered to read *yet* another thread about\nsomeone who thinks they know how symlinks should work on Windows, so\nI'll assume it's the Cygwin-take... which is the most senseful IMO)\nSymlinks in Cygwin are generally not compatible with native Windows\napplications.\n\nAnd Windows symlinks are not at all compatible with POSIX-symlinks. At all.\n\nWhoever wants symlink support in Git for Windows have clearly not\nconsidered how this would work (or more likely, break). It's an idea\nbuilt on misunderstanding and poor engineering-concepts.\n\nThere's no way we can support symlinks in a clean, Windows specific\nway. So let's not even pretend it works.\n\nThat being said, we could probably error out in a more senseful way.\nBut if so,suggestions/patches welcome.\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"225047","messageId":"CABJxLaMtHLGzwaxJgM3H9uFzb9_LMLzQ4_A6q0dcEOyShhb+kw@mail.gmail.com","threadId":"34670","inReplyTo":"CABPQNSaU_69RxNEAAY0=BYdJm0ir_xkOkd2nPaxop7m0aJ9trg@mail.gmail.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Sedat Kapanoglu","fromEmail":"sedat@eksiteknoloji.com","sentAt":"2013-08-11T07:28:03Z","receivedAt":"2013-08-11T07:28:03Z","isPatch":false,"sender":{"key":"sedat@eksiteknoloji.com","avatar":"https://gravatar.com/avatar/56a2df1a42ac4198e4a2ece45eb20a6ef20f23db5c0ba18547f56f2e35176bf6?d=mp&s=160"},"body":"Thanks folks. So that this won't be fixed, I added a new Q&A to\nMsysGit FAQ at https://github.com/msysgit/msysgit/wiki/Frequently-Asked-Questions\n, I appreciate if you can review and correct if needed. I hope it will\nhelp avoiding further conversations about this matter.\n\nSedat\n"},{"id":"225057","messageId":"CABPQNSbvC8+skkPmcmh_LBrThO39A4FOdRTzum+uibooZk+stw@mail.gmail.com","threadId":"34670","inReplyTo":"CABJxLaMtHLGzwaxJgM3H9uFzb9_LMLzQ4_A6q0dcEOyShhb+kw@mail.gmail.com","subject":"Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2013-08-11T14:05:07Z","receivedAt":"2013-08-11T14:05:07Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Sun, Aug 11, 2013 at 9:28 AM, Sedat Kapanoglu\n<sedat@eksiteknoloji.com> wrote:\n> Thanks folks. So that this won't be fixed, I added a new Q&A to\n> MsysGit FAQ at https://github.com/msysgit/msysgit/wiki/Frequently-Asked-Questions\n> , I appreciate if you can review and correct if needed. I hope it will\n> help avoiding further conversations about this matter.\n\nThanks, that's very helpful!\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"225498","messageId":"1928115.O1fVFY9Fid@majorie","threadId":"34670","inReplyTo":"20130810163459.GE25779@paksenarrion.iveqy.com","subject":"Re: Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Michael Geddes","fromEmail":"michael@frog.wheelycreek.net","sentAt":"2013-08-20T07:30:55Z","receivedAt":"2013-08-20T07:30:55Z","isPatch":false,"sender":{"key":"michael@frog.wheelycreek.net","avatar":null},"body":"This type of functionality is directly supported by the work I've already done \non symlinks here:   https://github.com/frogonwheels/git   \n(branches mrg/symlink-v*  )\n\nEven if we agree that symlinks only work to a limited degree, or that there \nare definite limitations, and that the default should be that symlinks NOT be \nsupported within repositories, I'm not sure why people are against \nincorporating what I've already implemented.. ok well I guess I do - it's \nabout time.\n\nFirstly, at the least it means that symlinks like this example where they are  \noutside the repository are supported.  Secondly it means that people who are \nprepared to accept the limitations will be able to use (or at least clone) \nrepositories containing symlinks.\n\nOne of the big, painful limitations is that windoze symlinks need to be marked \nas directories at the time of creation.  The code I have implemented does it's \nlevel best to create the correct type of NTFS symlink based on repository \ninformation and falling back on filesystem information.\n\nThe argument about permissions is only partially valid, since that can be \ngranted as an individual permission to the user without permanent \nadministrator rights.\n\n//.ichael G.\n\nOn Sat, 10 Aug 2013 06:34:59 PM Fredrik Gustafsson wrote:\n> On Sat, Aug 10, 2013 at 07:22:03PM +0300, Sedat Kapanoglu wrote:\n> > > git is a disk intense program, so this setup is not sane at all. With\n> > > that said I know that git on windows historically had problems with\n> > > working on smb-mounted shares (sometimes you're forced to have stupid\n> > > setups). I doubt that git really is the right tool for your work, since\n> > \n> > I reproduced the same problem in a regular symlink directory. Repro steps:\n> > \n> > mkdir actualdir\n> > mklink /d symdir actualdir\n> > cd symdir\n> > git init .\n> > \n> > fatal: Invalid symlink 'D:/gitto': Function not implemented\n> > \n> > Thanks,\n> > \n> > Sedat\n> \n> Good, then we can determinate that this is a symlink error, it seams\n> that readlink() isn't implemented in the msysgit version of msysgit.\n> \n> However msysgit should have a implementation of readlink() according to:\n> http://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n> \n> I've CC:ed the msysgit-maillist so that they can decide if this is\n> something they want to address in newer releases.\n> \n> (In the git source code the readlink call in this abspath.c)\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"225736","messageId":"CALEirj-7GKvU2y0_9A+447YA_18JLZROfvMtBiDX3k=3DATmZA@mail.gmail.com","threadId":"34670","inReplyTo":"1928115.O1fVFY9Fid@majorie","subject":"Re: Re: git clone doesn't work in symlink dir roots on Windows","fromName":"MNGoldenEagle","fromEmail":"mngoldeneagle@gmail.com","sentAt":"2013-08-23T19:12:10Z","receivedAt":"2013-08-23T19:12:10Z","isPatch":false,"sender":{"key":"mngoldeneagle@gmail.com","avatar":null},"body":"Aside from having to specify whether or not the symbolic link points to a\nfile or directory, what are the limitations of symlinks?  I'm a bit\ncurious, having used them myself but never encountering any significant\nissues with them.  I remember hearing at one point that Windows Vista could\nonly create up to 31 links inside a directory, but I just checked on my\nWindows 7 machine and was able to generate over 600 links to a directory\nwithout a problem, so I'm guessing Windows 7 worked around this issue.\n\nJesse\n\n\nOn Tue, Aug 20, 2013 at 2:30 AM, Michael Geddes <\nmichael@frog.wheelycreek.net> wrote:\n\n> This type of functionality is directly supported by the work I've already\n> done\n> on symlinks here:   https://github.com/frogonwheels/git\n> (branches mrg/symlink-v*  )\n>\n> Even if we agree that symlinks only work to a limited degree, or that there\n> are definite limitations, and that the default should be that symlinks NOT\n> be\n> supported within repositories, I'm not sure why people are against\n> incorporating what I've already implemented.. ok well I guess I do - it's\n> about time.\n>\n> Firstly, at the least it means that symlinks like this example where they\n> are\n> outside the repository are supported.  Secondly it means that people who\n> are\n> prepared to accept the limitations will be able to use (or at least clone)\n> repositories containing symlinks.\n>\n> One of the big, painful limitations is that windoze symlinks need to be\n> marked\n> as directories at the time of creation.  The code I have implemented does\n> it's\n> level best to create the correct type of NTFS symlink based on repository\n> information and falling back on filesystem information.\n>\n> The argument about permissions is only partially valid, since that can be\n> granted as an individual permission to the user without permanent\n> administrator rights.\n>\n> //.ichael G.\n>\n> On Sat, 10 Aug 2013 06:34:59 PM Fredrik Gustafsson wrote:\n> > On Sat, Aug 10, 2013 at 07:22:03PM +0300, Sedat Kapanoglu wrote:\n> > > > git is a disk intense program, so this setup is not sane at all. With\n> > > > that said I know that git on windows historically had problems with\n> > > > working on smb-mounted shares (sometimes you're forced to have stupid\n> > > > setups). I doubt that git really is the right tool for your work,\n> since\n> > >\n> > > I reproduced the same problem in a regular symlink directory. Repro\n> steps:\n> > >\n> > > mkdir actualdir\n> > > mklink /d symdir actualdir\n> > > cd symdir\n> > > git init .\n> > >\n> > > fatal: Invalid symlink 'D:/gitto': Function not implemented\n> > >\n> > > Thanks,\n> > >\n> > > Sedat\n> >\n> > Good, then we can determinate that this is a symlink error, it seams\n> > that readlink() isn't implemented in the msysgit version of msysgit.\n> >\n> > However msysgit should have a implementation of readlink() according to:\n> > http://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n> >\n> > I've CC:ed the msysgit-maillist so that they can decide if this is\n> > something they want to address in newer releases.\n> >\n> > (In the git source code the readlink call in this abspath.c)\n>\n> --\n> --\n> *** Please reply-to-all at all times ***\n> *** (do not pretend to know who is subscribed and who is not) ***\n> *** Please avoid top-posting. ***\n> The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki -\n> Github accounts are free.\n>\n> You received this message because you are subscribed to the Google\n> Groups \"msysGit\" group.\n> To post to this group, send email to msysgit@googlegroups.com\n> To unsubscribe from this group, send email to\n> msysgit+unsubscribe@googlegroups.com\n> For more options, and view previous threads, visit this group at\n> http://groups.google.com/group/msysgit?hl=en_US?hl=en\n>\n> ---\n> You received this message because you are subscribed to the Google Groups\n> \"msysGit\" group.\n> To unsubscribe from this group and stop receiving emails from it, send an\n> email to msysgit+unsubscribe@googlegroups.com.\n> For more options, visit https://groups.google.com/groups/opt_out.\n>\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"226073","messageId":"3d08cf46e3e08d948adeebacf491ef1b@wheelycreek.net","threadId":"34670","inReplyTo":"CALEirj-7GKvU2y0_9A+447YA_18JLZROfvMtBiDX3k=3DATmZA@mail.gmail.com","subject":"Re: Re: git clone doesn't work in symlink dir roots on Windows","fromName":"Michael","fromEmail":"michael@frog.wheelycreek.net","sentAt":"2013-08-28T00:54:37Z","receivedAt":"2013-08-28T00:54:37Z","isPatch":false,"sender":{"key":"michael@frog.wheelycreek.net","avatar":null},"body":" \n\nI really don't know Jesse, \n\nThe permissions issue keeps coming up,\nbut to me it seems a non-issue as there is a CLI command to issue the\nappropriate permissions to a user. The directory link being separate is\na painful but known issue, and my solution should work in most every-day\nways, as long as the symlinks aren't dangling within the repository tree\nitself. \n\nWe could possibly limit the types of NTFS symbolic links that\nwould actually be embedded in a git database to relative links (or is\nthat done already?). I'm quite happy to have 'That type of NTFS symbolic\nlink is not supported' as a valid solution to anything that is outside\nof simple symbolic links. \n\nCurrently the biggest thing holding symlinks\nback from being complete is lack of support in MSYS itself - which might\nbe solved by using MSYS2. I have worked around this in the tests by\noverriding various commands with shell functions that implement\noperations on symlinks via cmd.exe. The only current exception to this\nis tar, which I can't do much about. \n\nI've just rebased my symlink\nbranch onto pt/tentative-1.8.4 and am chasing down test failures. \n\nThe\ntests like to make the symlinks before creating directories, or to\ncreate dangling symlinks, which doesn't help my cause - but am working\nthrough it. \n\n//. \n\nOn 23.08.2013 12:12, MNGoldenEagle wrote: \n\n> Aside\nfrom having to specify whether or not the symbolic link points to a file\nor directory, what are the limitations of symlinks? I'm a bit curious,\nhaving used them myself but never encountering any significant issues\nwith them. I remember hearing at one point that Windows Vista could only\ncreate up to 31 links inside a directory, but I just checked on my\nWindows 7 machine and was able to generate over 600 links to a directory\nwithout a problem, so I'm guessing Windows 7 worked around this issue.\n>\n\n> Jesse \n> \n> On Tue, Aug 20, 2013 at 2:30 AM, Michael Geddes\n<michael@frog.wheelycreek.net> wrote:\n> \n>> This type of functionality\nis directly supported by the work I've already done\n>> on symlinks here:\nhttps://github.com/frogonwheels/git [1]\n>> (branches mrg/symlink-v* )\n>>\n\n>> Even if we agree that symlinks only work to a limited degree, or\nthat there\n>> are definite limitations, and that the default should be\nthat symlinks NOT be\n>> supported within repositories, I'm not sure why\npeople are against\n>> incorporating what I've already implemented.. ok\nwell I guess I do - it's\n>> about time.\n>> \n>> Firstly, at the least it\nmeans that symlinks like this example where they are\n>> outside the\nrepository are supported. Secondly it means that people who are\n>>\nprepared to accept the limitations will be able to use (or at least\nclone)\n>> repositories containing symlinks.\n>> \n>> One of the big,\npainful limitations is that windoze symlinks need to be marked\n>> as\ndirectories at the time of creation. The code I have implemented does\nit's\n>> level best to create the correct type of NTFS symlink based on\nrepository\n>> information and falling back on filesystem information.\n>>\n\n>> The argument about permissions is only partially valid, since that\ncan be\n>> granted as an individual permission to the user without\npermanent\n>> administrator rights.\n>> \n>> //.ichael G.\n>> \n>> On Sat, 10\nAug 2013 06:34:59 PM Fredrik Gustafsson wrote:\n>> > On Sat, Aug 10, 2013\nat 07:22:03PM +0300, Sedat Kapanoglu wrote:\n>> > > > git is a disk\nintense program, so this setup is not sane at all. With\n>> > > > that\nsaid I know that git on windows historically had problems with\n>> > > >\nworking on smb-mounted shares (sometimes you're forced to have stupid\n>>\n> > > setups). I doubt that git really is the right tool for your work,\nsince\n>> > >\n>> > > I reproduced the same problem in a regular symlink\ndirectory. Repro steps:\n>> > >\n>> > > mkdir actualdir\n>> > > mklink /d\nsymdir actualdir\n>> > > cd symdir\n>> > > git init .\n>> > >\n>> > > fatal:\nInvalid symlink 'D:/gitto': Function not implemented\n>> > >\n>> > >\nThanks,\n>> > >\n>> > > Sedat\n>> >\n>> > Good, then we can determinate that\nthis is a symlink error, it seams\n>> > that readlink() isn't implemented\nin the msysgit version of msysgit.\n>> >\n>> > However msysgit should have\na implementation of readlink() according to:\n>> >\nhttp://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n[2]\n>> >\n>> > I've CC:ed the msysgit-maillist so that they can decide if\nthis is\n>> > something they want to address in newer releases.\n>> >\n>> >\n(In the git source code the readlink call in this abspath.c)\n>> \n>> --\n\n>> \n>> --\n>> *** Please reply-to-all at all times ***\n>> *** (do not\npretend to know who is subscribed and who is not) ***\n>> *** Please\navoid top-posting. ***\n>> The msysGit Wiki is here:\nhttps://github.com/msysgit/msysgit/wiki [3] - Github accounts are\nfree.\n>> \n>> You received this message because you are subscribed to the\nGoogle\n>> Groups \"msysGit\" group.\n>> To post to this group, send email\nto msysgit@googlegroups.com\n>> To unsubscribe from this group, send\nemail to\n>> msysgit+unsubscribe@googlegroups.com\n>> For more options,\nand view previous threads, visit this group at\n>>\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en [4]\n>> \n>> ---\n>>\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\n>> To unsubscribe from this group and stop\nreceiving emails from it, send an email to\nmsysgit+unsubscribe@googlegroups.com.\n>> For more options, visit\nhttps://groups.google.com/groups/opt_out [5].\n\n \n\nLinks:\n------\n[1]\nhttps://github.com/frogonwheels/git\n[2]\nhttp://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n[3]\nhttps://github.com/msysgit/msysgit/wiki\n[4]\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n[5]\nhttps://groups.google.com/groups/opt_out\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"},{"id":"227171","messageId":"CALEirj_GoMLuLDSyPgP0=JX9twm5+Q=QE5xiDxn5zNvXLCuNpg@mail.gmail.com","threadId":"34670","inReplyTo":"3d08cf46e3e08d948adeebacf491ef1b@wheelycreek.net","subject":"Re: Re: git clone doesn't work in symlink dir roots on Windows","fromName":"MNGoldenEagle","fromEmail":"mngoldeneagle@gmail.com","sentAt":"2013-09-08T23:40:09Z","receivedAt":"2013-09-08T23:40:09Z","isPatch":false,"sender":{"key":"mngoldeneagle@gmail.com","avatar":null},"body":"Michael,\n\nWell, I know that you need administrative permission to create symbolic\nlinks on Windows (specified in the Local Security Policy under \"Create\nsymbolic links\"), so if you're not running as an administrator, that's\nprobably the issue.  The only way around it is to modify the security\npolicy or have Git request admin privileges if it needs to use symlinks.\n\nJesse\n\n\nOn Tue, Aug 27, 2013 at 7:54 PM, Michael <michael@frog.wheelycreek.net>wrote:\n\n> **\n>\n> I really don't know Jesse,\n>\n> The permissions issue keeps coming up, but to me it seems a non-issue as\n> there is a CLI command to issue the appropriate permissions to a user.  The\n> directory link being separate is a painful but known issue, and my solution\n> should work in most every-day ways, as long as the symlinks aren't dangling\n> within the repository tree itself.\n>\n> We could possibly limit the types of NTFS symbolic links that would\n> actually be embedded in a git database to relative links (or is that done\n> already?).  I'm quite happy to have 'That type of NTFS symbolic link is not\n> supported' as a valid solution to anything that is outside of simple\n> symbolic links.\n>\n> Currently the biggest thing holding symlinks back from being complete is\n> lack of support in MSYS itself - which might be solved by using MSYS2.   I\n> have worked around this in the tests by overriding various commands with\n> shell functions that implement operations on symlinks via cmd.exe.  The\n> only current exception to this is tar, which I can't do much about.\n>\n> I've just rebased my symlink branch onto pt/tentative-1.8.4 and am chasing\n> down test failures.\n>\n> The tests like to make the symlinks before creating directories, or to\n> create dangling symlinks, which doesn't help my cause - but am working\n> through it.\n>\n> //.\n>\n> On 23.08.2013 12:12, MNGoldenEagle wrote:\n>\n>  Aside from having to specify whether or not the symbolic link points to\n> a file or directory, what are the limitations of symlinks?  I'm a bit\n> curious, having used them myself but never encountering any significant\n> issues with them.  I remember hearing at one point that Windows Vista could\n> only create up to 31 links inside a directory, but I just checked on my\n> Windows 7 machine and was able to generate over 600 links to a directory\n> without a problem, so I'm guessing Windows 7 worked around this issue.\n>\n> Jesse\n>\n>\n> On Tue, Aug 20, 2013 at 2:30 AM, Michael Geddes <\n> michael@frog.wheelycreek.net> wrote:\n>\n>> This type of functionality is directly supported by the work I've already\n>> done\n>> on symlinks here:   https://github.com/frogonwheels/git\n>> (branches mrg/symlink-v*  )\n>>\n>> Even if we agree that symlinks only work to a limited degree, or that\n>> there\n>> are definite limitations, and that the default should be that symlinks\n>> NOT be\n>> supported within repositories, I'm not sure why people are against\n>> incorporating what I've already implemented.. ok well I guess I do - it's\n>> about time.\n>>\n>> Firstly, at the least it means that symlinks like this example where they\n>> are\n>> outside the repository are supported.  Secondly it means that people who\n>> are\n>> prepared to accept the limitations will be able to use (or at least clone)\n>> repositories containing symlinks.\n>>\n>> One of the big, painful limitations is that windoze symlinks need to be\n>> marked\n>> as directories at the time of creation.  The code I have implemented does\n>> it's\n>> level best to create the correct type of NTFS symlink based on repository\n>> information and falling back on filesystem information.\n>>\n>> The argument about permissions is only partially valid, since that can be\n>> granted as an individual permission to the user without permanent\n>> administrator rights.\n>>\n>> //.ichael G.\n>>\n>> On Sat, 10 Aug 2013 06:34:59 PM Fredrik Gustafsson wrote:\n>> > On Sat, Aug 10, 2013 at 07:22:03PM +0300, Sedat Kapanoglu wrote:\n>> > > > git is a disk intense program, so this setup is not sane at all.\n>> With\n>> > > > that said I know that git on windows historically had problems with\n>> > > > working on smb-mounted shares (sometimes you're forced to have\n>> stupid\n>> > > > setups). I doubt that git really is the right tool for your work,\n>> since\n>> > >\n>> > > I reproduced the same problem in a regular symlink directory. Repro\n>> steps:\n>> > >\n>> > > mkdir actualdir\n>> > > mklink /d symdir actualdir\n>> > > cd symdir\n>> > > git init .\n>> > >\n>> > > fatal: Invalid symlink 'D:/gitto': Function not implemented\n>> > >\n>> > > Thanks,\n>> > >\n>> > > Sedat\n>> >\n>> > Good, then we can determinate that this is a symlink error, it seams\n>> > that readlink() isn't implemented in the msysgit version of msysgit.\n>> >\n>> > However msysgit should have a implementation of readlink() according to:\n>> > http://mingw.5.n7.nabble.com/Replacement-for-readlink-td30679.html\n>> >\n>> > I've CC:ed the msysgit-maillist so that they can decide if this is\n>> > something they want to address in newer releases.\n>> >\n>> > (In the git source code the readlink call in this abspath.c)\n>>\n>> --\n>>  --\n>> *** Please reply-to-all at all times ***\n>> *** (do not pretend to know who is subscribed and who is not) ***\n>> *** Please avoid top-posting. ***\n>> The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki -\n>> Github accounts are free.\n>>\n>> You received this message because you are subscribed to the Google\n>> Groups \"msysGit\" group.\n>> To post to this group, send email to msysgit@googlegroups.com\n>> To unsubscribe from this group, send email to\n>> msysgit+unsubscribe@googlegroups.com\n>> For more options, and view previous threads, visit this group at\n>> http://groups.google.com/group/msysgit?hl=en_US?hl=en\n>>\n>> ---\n>> You received this message because you are subscribed to the Google Groups\n>> \"msysGit\" group.\n>> To unsubscribe from this group and stop receiving emails from it, send an\n>> email to msysgit+unsubscribe@googlegroups.com.\n>> For more options, visit https://groups.google.com/groups/opt_out.\n>>\n>\n>\n>\n\n-- \n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n\n--- \nYou received this message because you are subscribed to the Google Groups \"msysGit\" group.\nTo unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.\nFor more options, visit https://groups.google.com/groups/opt_out.\n"}]}