[OT] - Methods for Decentral Branching

1 view
Skip to first unread message

Ilias Lazaridis

unread,
Oct 30, 2006, 11:31:08 AM10/30/06
to Trac Development
(note: possibly this is very trivial, but I have personally no
experience with SVN branching / merging)

some background info [1]

With a "Decentral Branch" is meant:

A branch location located within an other repository on another server
than the trunk repository.

What I like to do is:

a) Copy the actual trac trunk (no need to have the svn-history) to my
servers svn, thus the branch can be retrieved via standard svn co.
b) modify my-servers-trac on local space
c) commit changes back to my-servers-trac
d) merge central-trac-changes to my-server-svn
e) provide a method to merge my-server-svn changes to original-trac
(for use from trac-comitters)

I am not sure how to do point a, d, e - and would like to have a simple
and elegant solution, which should be based on the _original_ svn
functionality (possibly with some tiny helper scripts).

An actual description can be found here:

http://dev.lazaridis.com/base/wiki/PlanDecentralBranching

-

If that matters: I have full access (root) to my server.

Currently, my plan is to do the following:

checkout the actual trac-head as local WC (working copy)
export this version to a location on my PC.
place this exported version under version control on my server

update the trac.WC
do a svn merge of actual trac.WC mytrac.WC
commit changes to the my-server-trac.

-

[1]

Getting a branch location is not that easy (nothing special with
trac-project, it's common situation within open-source projects):

http://groups.google.com/group/trac-dev/msg/4ddfd1453dfe4a15

and working with patches is an creativity, motivation and especially
productivity killer. Solving a complex task based on patches is in some
cases even impossible .

Thus I like to create this "decentral branch".

Matt Good

unread,
Nov 1, 2006, 1:56:28 AM11/1/06
to Trac Development
The easiest way I've found to do distributed version control with
Subversion is via SVK. It lets you mirror a Subversion repository,
record your local changes, and continue to merge in upstream changes.

See http://svk.bestpractical.com/view/HomePage

-- Matt Good

Ilias Lazaridis

unread,
Nov 10, 2006, 9:04:42 AM11/10/06
to Trac Development

If I understand right, this tools is for local branches which are _not_
published on a remote server.

-

I've currently this setup:

my decentral branch repository:

http://dev.lazaridis.com/base/browser/infra/trac-dev

I've a standard local working copy of this.

I've a standard local working copy of the original trac-dev-repo, too.

-

I do my custom changes within the local trac-dev-repo copy.

I checkout new versions of trac, detecting conflicts and doing the
merges manually.

then I simply export the working-copy files to my
decentral-branch-working-copy, overwriting the existen files with the
new changes. [1]

then I commit those to the decentral-branch-repo (making them available
to other developers)

everything fine so far.

-

Problem:

files removed from the trac-dev-repo are automaticly removed in the
trac-dev-working-copy.

[1[ but they remain within the decentral-branch-working-copy,

Any standard solution to this?

-

http://dev.lazaridis.com/base/wiki/PlanDecentralBranching

Matt Good

unread,
Nov 10, 2006, 2:43:02 PM11/10/06
to Trac Development
Ilias Lazaridis wrote:
> Matt Good wrote:
> > The easiest way I've found to do distributed version control with
> > Subversion is via SVK. It lets you mirror a Subversion repository,
> > record your local changes, and continue to merge in upstream changes.
> >
> > See http://svk.bestpractical.com/view/HomePage
>
> If I understand right, this tools is for local branches which are _not_
> published on a remote server.

No, it's also supposed to support merging changes between different
remote repositories. I've never used that feature myself, so I can't
tell you quite how it works.

-- Matt Good

Reply all
Reply to author
Forward
0 new messages