# From Perforce to Git

3 messages from 2008-10-25 to 2008-10-26. Participants: Brandon, David Symonds.
Thread: https://gitlist.dev/t/16044

## Brandon, 2008-10-25 21:18

Subject: From Perforce to Git
Message-ID: <82c87da00810251418y4a6ef1fbgccefb12061535226@mail.gmail.com>
URL: https://gitlist.dev/e/82c87da00810251418y4a6ef1fbgccefb12061535226%40mail.gmail.com

```
   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, 2008-10-25 23:41

Subject: From Perforce to Git
Message-ID: <ee77f5c20810251641l4892ff12n7b30667c6fcc903c@mail.gmail.com>
URL: https://gitlist.dev/e/ee77f5c20810251641l4892ff12n7b30667c6fcc903c%40mail.gmail.com
In-Reply-To: <ee77f5c20810251640q4b40d524n7271a0dfa11ebef8@mail.gmail.com>

```
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).

> 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, 2008-10-26 16:08

Subject: Re: From Perforce to Git
Message-ID: <82c87da00810260908w2530dbb8j7ebcabe2516d5ed@mail.gmail.com>
URL: https://gitlist.dev/e/82c87da00810260908w2530dbb8j7ebcabe2516d5ed%40mail.gmail.com
In-Reply-To: <ee77f5c20810251641l4892ff12n7b30667c6fcc903c@mail.gmail.com>

```
On Sat, Oct 25, 2008 at 6:41 PM, David Symonds <dsymonds@gmail.com> wrote:
> 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.


>> 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.

```
