threads / discuss / 16044

From Perforce to Git

Subject: From Perforce to Git

## tl;dr

3 messages between Oct 25, 2008 and Oct 26, 2008.

replies: 2people: 2as markdown or json

Brandon· Oct 25, 2008, 21:18 UTC · lore
   I'm trying to make a comprehensive comparison of Perforce and Git
features. There are two things I currently can't find:
1) "Who's editing what"
    It's been documented that git can help developers communicate who
is editing what at any given time like perforce. (assuming there is a
central repositry) Has anyone seen an example of scripts to do this?
    References:
http://www-cs-students.stanford.edu/~blynn/gitmagic/ch07.html  (Who's
editing what)
  "To view "pending" changes a la P4 C<git cherry> or C<git log> can be used on
  someone else's branch, but their changes must be published."
     - http://www.nntp.perl.org/group/perl.perl5.porters/2008/09/msg139661.html
2) Symlinks to checkout partial repository
   I believe I read symlinks could be used to checkout part of a
repository. Is this true? any references? I imagine submodules is the
preferred way of doing this, and "narrow" or "partial" or "sparse"
checkouts are under development
(http://kerneltrap.org/mailarchive/git/2008/9/14/3292714), but I'm
still interested in learning this solution.

any direction would be appreciated, -brandon

David Symonds· Oct 25, 2008, 23:41 UTC · lore
On Sat, Oct 25, 2008 at 2:18 PM, Brandon <siamesedream01@gmail.com> wrote:
Show 7 quoted lines
>   I'm trying to make a comprehensive comparison of Perforce and Git
> features. There are two things I currently can't find:
>
> 1) "Who's editing what"
>    It's been documented that git can help developers communicate who
> is editing what at any given time like perforce. (assuming there is a
> central repositry) Has anyone seen an example of scripts to do this?

That's the primary feature of Perforce that kills its scalability once you get past a few hundred developers; it bloats the metadata too much. When you're using Git, there's really little point in using it, since you don't declare what files you are going to be editing, and you can find out other people's changes at merge time at your leisure (not just when *you* want to commit).

Show 5 quoted lines
> 2) Symlinks to checkout partial repository
>   I believe I read symlinks could be used to checkout part of a
> repository. Is this true? any references? I imagine submodules is the
> preferred way of doing this, and "narrow" or "partial" or "sparse"
> checkouts are under development

I don't think so. You could use symlinks to *simulate* a bigger repository that is actually made up of smaller repositories.

Dave.
Brandon· Oct 26, 2008, 16:08 UTC · re: David Symonds · lore

Re: From Perforce to Git

On Sat, Oct 25, 2008 at 6:41 PM, David Symonds <dsymonds@gmail.com> wrote:
Show 16 quoted lines
> On Sat, Oct 25, 2008 at 2:18 PM, Brandon <siamesedream01@gmail.com> wrote:
>
>>   I'm trying to make a comprehensive comparison of Perforce and Git
>> features. There are two things I currently can't find:
>>
>> 1) "Who's editing what"
>>    It's been documented that git can help developers communicate who
>> is editing what at any given time like perforce. (assuming there is a
>> central repositry) Has anyone seen an example of scripts to do this?
>
> That's the primary feature of Perforce that kills its scalability once
> you get past a few hundred developers; it bloats the metadata too
> much. When you're using Git, there's really little point in using it,
> since you don't declare what files you are going to be editing, and
> you can find out other people's changes at merge time at your leisure
> (not just when *you* want to commit).
   I think there is an even more fundamental problem with this
feature. Since perforce 'forces' developers the checkout files for
edit, eventually you just ignore these warnings because you don't know
if someone is really checking something out to make a change they are
going to commit, or just need to make a file writable to experiment
with some other feature they're working on etc... This feature would
work much better if it were optional. I don't really care about the
feature per se I would just like to be able to state that Git can
offer everything that perforce can.
   I would imagine this would require users pushing their changes to a
branch in the central git repo. Then other users could use git log or
cherry to see what files others are interested in (aka declared they
are going to edit)? Not that this is necessarily a good way to work.
Show 12 quoted lines
>> 2) Symlinks to checkout partial repository
>>   I believe I read symlinks could be used to checkout part of a
>> repository. Is this true? any references? I imagine submodules is the
>> preferred way of doing this, and "narrow" or "partial" or "sparse"
>> checkouts are under development
>
> I don't think so. You could use symlinks to *simulate* a bigger
> repository that is actually made up of smaller repositories.
>
>
> Dave.
>

thanks, I'm pretty sure I'm just imagining reading this somewhere, I just needed some confirmation.

← back to recent threads