{"thread":{"id":"16044","subject":"From Perforce to Git","startedAt":"2008-10-25T21:18:27Z","lastAt":"2008-10-26T16:08:27Z","messageCount":3,"participants":["Brandon","David Symonds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"93946","messageId":"82c87da00810251418y4a6ef1fbgccefb12061535226@mail.gmail.com","threadId":"16044","inReplyTo":null,"subject":"From Perforce to Git","fromName":"Brandon","fromEmail":"siamesedream01@gmail.com","sentAt":"2008-10-25T21:18:27Z","receivedAt":"2008-10-25T21:18:27Z","isPatch":false,"sender":{"key":"siamesedream01@gmail.com","avatar":null},"body":"   I'm trying to make a comprehensive comparison of Perforce and Git\nfeatures. There are two things I currently can't find:\n\n1) \"Who's editing what\"\n    It's been documented that git can help developers communicate who\nis editing what at any given time like perforce. (assuming there is a\ncentral repositry) Has anyone seen an example of scripts to do this?\n    References:\nhttp://www-cs-students.stanford.edu/~blynn/gitmagic/ch07.html  (Who's\nediting what)\n  \"To view \"pending\" changes a la P4 C<git cherry> or C<git log> can be used on\n  someone else's branch, but their changes must be published.\"\n     - http://www.nntp.perl.org/group/perl.perl5.porters/2008/09/msg139661.html\n\n2) Symlinks to checkout partial repository\n   I believe I read symlinks could be used to checkout part of a\nrepository. Is this true? any references? I imagine submodules is the\npreferred way of doing this, and \"narrow\" or \"partial\" or \"sparse\"\ncheckouts are under development\n(http://kerneltrap.org/mailarchive/git/2008/9/14/3292714), but I'm\nstill interested in learning this solution.\n\nany direction would be appreciated,\n-brandon\n"},{"id":"93948","messageId":"ee77f5c20810251641l4892ff12n7b30667c6fcc903c@mail.gmail.com","threadId":"16044","inReplyTo":"ee77f5c20810251640q4b40d524n7271a0dfa11ebef8@mail.gmail.com","subject":"From Perforce to Git","fromName":"David Symonds","fromEmail":"dsymonds@gmail.com","sentAt":"2008-10-25T23:41:28Z","receivedAt":"2008-10-25T23:41:28Z","isPatch":false,"sender":{"key":"dsymonds@gmail.com","avatar":"https://gravatar.com/avatar/b22f5051cbfc11836e36cf7a690e6cde4e225d835e13295ff98d15c7a9ee3c0f?d=mp&s=160"},"body":"On Sat, Oct 25, 2008 at 2:18 PM, Brandon <siamesedream01@gmail.com> wrote:\n\n>   I'm trying to make a comprehensive comparison of Perforce and Git\n> features. There are two things I currently can't find:\n>\n> 1) \"Who's editing what\"\n>    It's been documented that git can help developers communicate who\n> is editing what at any given time like perforce. (assuming there is a\n> central repositry) Has anyone seen an example of scripts to do this?\n\nThat's the primary feature of Perforce that kills its scalability once\nyou get past a few hundred developers; it bloats the metadata too\nmuch. When you're using Git, there's really little point in using it,\nsince you don't declare what files you are going to be editing, and\nyou can find out other people's changes at merge time at your leisure\n(not just when *you* want to commit).\n\n> 2) Symlinks to checkout partial repository\n>   I believe I read symlinks could be used to checkout part of a\n> repository. Is this true? any references? I imagine submodules is the\n> preferred way of doing this, and \"narrow\" or \"partial\" or \"sparse\"\n> checkouts are under development\n\nI don't think so. You could use symlinks to *simulate* a bigger\nrepository that is actually made up of smaller repositories.\n\n\nDave.\n"},{"id":"93986","messageId":"82c87da00810260908w2530dbb8j7ebcabe2516d5ed@mail.gmail.com","threadId":"16044","inReplyTo":"ee77f5c20810251641l4892ff12n7b30667c6fcc903c@mail.gmail.com","subject":"Re: From Perforce to Git","fromName":"Brandon","fromEmail":"siamesedream01@gmail.com","sentAt":"2008-10-26T16:08:27Z","receivedAt":"2008-10-26T16:08:27Z","isPatch":false,"sender":{"key":"siamesedream01@gmail.com","avatar":null},"body":"On Sat, Oct 25, 2008 at 6:41 PM, David Symonds <dsymonds@gmail.com> wrote:\n> On Sat, Oct 25, 2008 at 2:18 PM, Brandon <siamesedream01@gmail.com> wrote:\n>\n>>   I'm trying to make a comprehensive comparison of Perforce and Git\n>> features. There are two things I currently can't find:\n>>\n>> 1) \"Who's editing what\"\n>>    It's been documented that git can help developers communicate who\n>> is editing what at any given time like perforce. (assuming there is a\n>> central repositry) Has anyone seen an example of scripts to do this?\n>\n> That's the primary feature of Perforce that kills its scalability once\n> you get past a few hundred developers; it bloats the metadata too\n> much. When you're using Git, there's really little point in using it,\n> since you don't declare what files you are going to be editing, and\n> you can find out other people's changes at merge time at your leisure\n> (not just when *you* want to commit).\n\n   I think there is an even more fundamental problem with this\nfeature. Since perforce 'forces' developers the checkout files for\nedit, eventually you just ignore these warnings because you don't know\nif someone is really checking something out to make a change they are\ngoing to commit, or just need to make a file writable to experiment\nwith some other feature they're working on etc... This feature would\nwork much better if it were optional. I don't really care about the\nfeature per se I would just like to be able to state that Git can\noffer everything that perforce can.\n   I would imagine this would require users pushing their changes to a\nbranch in the central git repo. Then other users could use git log or\ncherry to see what files others are interested in (aka declared they\nare going to edit)? Not that this is necessarily a good way to work.\n\n\n>> 2) Symlinks to checkout partial repository\n>>   I believe I read symlinks could be used to checkout part of a\n>> repository. Is this true? any references? I imagine submodules is the\n>> preferred way of doing this, and \"narrow\" or \"partial\" or \"sparse\"\n>> checkouts are under development\n>\n> I don't think so. You could use symlinks to *simulate* a bigger\n> repository that is actually made up of smaller repositories.\n>\n>\n> Dave.\n>\n\nthanks, I'm pretty sure I'm just imagining reading this somewhere, I\njust needed some confirmation.\n"}]}