[p4] Commiting partial-files
Evgeny
evgeny.zislis at gmail.com
Wed Apr 16 00:20:24 PDT 2008
Jeff,
I was actually just talking about the "your-workspace-is-a-branch" concept,
and not trying to turn Perforce into a full-fledged DVCS :)
In my new company I am advocating a move from Synergy/CVS to Perforce
and tutoring the admins regarding how to use it and how it works.
Several times I was asked if it is possible to divide a file into two different
changelists where in each some other part of the file was changed.
When I read the article I mention in the first e-mail - it suddenly seems so
easy, so I had to question my previous answer to my collegues :
"No it cant, it sounds too complicated and cant be done with any tool I know"
Well, now I know it can be done. In git, bazaar and probably several others.
Why not Perforce?
On Wed, Apr 16, 2008 at 7:35 AM, Jeff Younker <jeff at drinktomi.com> wrote:
>
> > There's a risk that you are developing something (function A) that is
> > mutually dependent on something else that you're developing (function B),
> > that I would worry about an unrelated user retrieving one-not-both of
> these
> > functions and ending up with something broken. It's a large risk to the
> > notion of [relatively] stable check-ins.
> >
>
> There's a risk of that even with discrete files. A change is made in
> function
> A that's dependent on something in function B, but B gets changed in
> another
> changelist, and that changelist gets submitted.
>
>
>
> > I have to ask - am I overlooking a benefit here?
> >
>
> Consider it a mechanism for doing n-way merge from k repositories.
>
> Git and distributed version control systems work in environments where
> there
> is not a single source of truth. There is a network of people who have
> their
> own local sources of truth. Some may have one set of patches applied,
> some
> may have another. All these independent sources of truth are making their
> own modifications locally, but at some point they may want to send these
> modification to another source of truth, with or without the layered
> patches.
>
> E.g. Redhat maintains a repository in house with the linux kernel. They
> make
> changes in house, apply the patches they need, and at some point they'll
> send
> them back to the linux kernel, quite possibly sans patches. Somewhere
> down
> the line they pick up recent kernel changes and roll them into their own,
> but they
> may get them from some other group's repository (say unbuntu or sun's.)
>
>
>
> > So, my question is, what's the benefit when compared against these
> > engineering / process concerns?
> >
>
> It allows multiple organizations to have their own repositories for
> projects
> that also exist outside their authority, yet still allows these projects to
> interoperate.
> It allows them to accept and reject partial patches, or to layer them on
> top of each
> other. It allows the work of work from hundreds or thousands of
> contributors
> which *will* be overwriting each other and working off of
> different/older/out of
> date versions and in different source code repositories.
>
> - Jeff Younker - jeff at drinktomi.com -
>
>
>
More information about the perforce-user
mailing list