[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: Adding changeset-like functionality to subversion

From: LOWE,DAVID (HP-Vancouver,ex1) <dave.lowe_at_hp.com>
Date: 2002-10-09 23:48:51 CEST

This has been a great discussion!

> From: Ben Collins-Sussman [mailto:sussman@collab.net]
> Subversion has changesets, but they're sort of implicit. Each
> subversion commit *does* have a unique name -- the revision number.
> We can examine subversion's "changesets" by looking at the diff
> between any two revisions. We can also apply a "changeset N" to a
> working copy in any order by running 'svn merge -r N-1:N'.

I maybe wrong but, I don't think this will do exactly what I need. Let me
give a simple example. Say we have two developers, Jack and Jill. Both start
with the same file that contains the following and make changes in separate
work spaces.

main()
{
        Func1();
        Func2();
        Func3();
        Func4();
        Func5();
}

On Monday, Tuesday, and Wednesday Jill makes three "changesets", one per
day.

main()
{
        Func1();
        MondaysFunc(); /* Monday's changeset */
        Func2();
        TuesdaysFunc(); /* Tuesday's changeset */
        Func3();
        WednesdaysFunc(); /* Wednesday's changeset */
        Func4();
        Func5();
}

Jack doesn't get as much done and he only makes one "changeset".

main()
{
        Func1();
        Func2();
        Func3();
        Func4();
        JacksFunc(); /* Jack's changeset */
        Func5();
}

On Thursday Jack decides he needs Jill's Wednesday changeset and applies it
to his file. My "order independent changeset" would give Jack these file
contents.

main()
{
        Func1();
        Func2();
        Func3();
        WednesdaysFunc(); /* Wednesday's changeset */
        Func4();
        JacksFunc(); /* Jack's changeset */
        Func5();
}

Can I get that from subversion?

Beyond this basic ability to apply changes independent of other changes, it
is true that a good change set solution requires logical-level abstraction
as described by Brad.

> From: Brad Appleton [mailto:brad@bradapp.net]
> My understanding of "changeset" functionality is that the "unit"
> of change that is "committed" to the repository is not at the
> individual file-level, but is instead at the logical-level and
> would include all the edits to all the files that I modified
> for a single coherent and consistent purpose (such as a 'fix'
> or 'enhancement' or some other 'change task').

It also needs the ability to marshal changesets between repositories.

> From: Greg Hudson [mailto:ghudson@MIT.EDU]
> What it does not have is a way of marshalling revisions into
> a blob and
> passing them around between repositories. This is because Subversion
> lacks distributed repository functionality, not because it lacks
> changesets.

Dave

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Oct 9 23:49:32 2002

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.