You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Mark Kikken <mk...@vaessen-consulting.de> on 2004/07/14 11:22:51 UTC

Expresso vendor branching

Hi,

I'm using the Expresso framework and plan to use Subversion in the 
future to manage any Expresso-related development. I've read the 
subversion manual and came across the 'vendor branching' section. It 
made sense, and I want to do the same for expresso.

However, the problem with expresso is, that it is not exactly a branch. 
Expresso is a fully-functional web-application in itself, and not just 
some files in a subdirectory of my project. The idea is that you add 
classes to the expresso source to add functionality and register these 
as an application with expresso. So, it's more like writing a vendor 
branch for Expresso, than the other way around.
To make things even more complicated, the expresso sourcecode-tree has 
the be restructured to be able to use it with the Eclipse IDE (which I 
intend to do).

So, what would be the 'best' way to do vendor branching on Expresso?

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Expresso vendor branching

Posted by Mark Kikken <mk...@vaessen-consulting.de>.
>Your descriptions sounds something like the way one writes a Zope
>application.  You create classes and subclasses within Zope's own code
>framework, and then 'register' your code as a 'product' within Zope. 
>But a Zope product still lives in a subdirectory, so I've had no problem
>keeping my Zope product under version control;  my Zope product
>directory also happens to be subversion working copy.
>
>  
>
Yes, that's about the same...

>So if Expresso is like this, then you could do the same thing.  There's
>no need to compare anything to 'vendor branching'.  I don't think that
>term applies here at all.
>  
>
Well, you could off course just pretend that there's no such thing as 
vendor branching and just put everything in the thrunk (or only your own 
sources and add that to expresso manually), but what happens then when 
expresso releases a new version? Some kind of version branching would be 
nice to keep track of this, that way it won't seem like I made the 
changes, while it's just a new Expresso version (or you won't see a 
change at all, if you don't put Expresso itself on svn).
And what happens if I discover a bug in Expresso? I might want to post a 
bugfix and create diffs. This would be easier if there were vendor 
branches.

Personally I've been thinking about keeping expresso in a seperate 
branch, and then checking it out before i check out my own sources in 
its subfolders. However, to use Expresso with Eclipse, I have to create 
a Tomcat project in Eclipse and only copy specific folders into this 
project. So if you put Expresso back on svn then, it will be totally 
different.
The only solution I can think off is putting Expresso on svn, but export 
it instead of checkin it out. That way I can only make changes to the 
Expresso code if I check it out seperately. It's less convenient, but 
better structured. The only thing I don't know is if  SubClipse (the 
svn-eclipse-plugin) can handle this, but I think it should be possible...

How does this idea sound to you?

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Expresso vendor branching

Posted by Ben Collins-Sussman <su...@collab.net>.
On Wed, 2004-07-14 at 06:22, Mark Kikken wrote:
> Hi,
> 
> I'm using the Expresso framework and plan to use Subversion in the 
> future to manage any Expresso-related development. I've read the 
> subversion manual and came across the 'vendor branching' section. It 
> made sense, and I want to do the same for expresso.
> 
> However, the problem with expresso is, that it is not exactly a branch. 
> Expresso is a fully-functional web-application in itself, and not just 
> some files in a subdirectory of my project. The idea is that you add 
> classes to the expresso source to add functionality and register these 
> as an application with expresso. So, it's more like writing a vendor 
> branch for Expresso, than the other way around.
> To make things even more complicated, the expresso sourcecode-tree has 
> the be restructured to be able to use it with the Eclipse IDE (which I 
> intend to do).

Your descriptions sounds something like the way one writes a Zope
application.  You create classes and subclasses within Zope's own code
framework, and then 'register' your code as a 'product' within Zope. 
But a Zope product still lives in a subdirectory, so I've had no problem
keeping my Zope product under version control;  my Zope product
directory also happens to be subversion working copy.

So if Expresso is like this, then you could do the same thing.  There's
no need to compare anything to 'vendor branching'.  I don't think that
term applies here at all.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Expresso vendor branching

Posted by Mark Kikken <mk...@vaessen-consulting.de>.
>>However, the problem with expresso is, that it is not exactly a branch.
>>Expresso is a fully-functional web-application in itself, and not just
>>some files in a subdirectory of my project. The idea is that you add
>>classes to the expresso source to add functionality and register these
>>as an application with expresso. So, it's more like writing a vendor
>>branch for Expresso, than the other way around.
>>To make things even more complicated, the expresso sourcecode-tree has
>>the be restructured to be able to use it with the Eclipse IDE (which I
>>intend to do).
>>    
>>
>
>Well, here's my 2 cents... *grin*
>
>No matter where or how you preserve the Expresso source, if you restructure 
>the Expresso tree, it will be more difficult to bring the changes from a new 
>version of Expresso.
>
>With that out of the way, why ~don't~ you treat it just like a vendor branch?
>
>/repo
>  /vendor
>    /expresso
>      current/
>
>Import your original version of Expresso into /repo/vendor/expresso/current.  
>Commit it.  Tag it by copying it to something like /repo/vendor/expresso/5.5.  
>Then copy it into your main development line (let's call that trunk).  Add 
>your custom code inside the directory for expresso or underneath it... 
>whatever works for Expresso:
>
>/repo
>  /trunk
>    /expresso
>      /mycode
>  /vendor
>    /expresso
>      current/
>      5.5/
>
>
>Okay, now what happens when you want to bring Expresso 5.6?  Use one of the 
>handy Perl scripts to merge between your new copy of the Expresso 5.6 source 
>and /repo/vendor/expresso/current.  Once you resolve all conflicts, tag it as 
>/repo/vendor/expresso/current/5.6.  Then do a merge between expresso/current 
>and trunk/expresso.
>
>Of course, if you have restructured the Expresso code, that will make 
>importing new versions very difficult to automate and you will probably have 
>to do the merge by hand.
>
>Hope this helps.
>
>  
>
This at least made clear to me that the vendor branching isn't the 
problem with expresso because of the way expresso is wrapped around my 
own code. The problem is that I need to restructure the expresso sources 
to be able to use it in Eclipse. This doesn't play nicely with vendor 
branching.

I suppose there isn't a way to do tranparent restructuring while 
merging, or is there? I could off course do seperate merges for every 
directory I want to place somewhere in my source-tree. That's one 
option. The other option is just using the expresso source just as it 
is. It contains files and directories I really don't need, but 
everything I need (the webapplication) is placed inside a sub-folder 
named 'expresso-web'. In Eclipse (with the sysdeo tomcat-plugin) it is 
possible to tell Eclipse that a project's web-application isn't in the 
project's root. So I could specify 'expresso-web' here. This produces 
the least administrative overhead, so I think i'll go with it. The only 
disavantage is having unnecessary expresso files and directories hanging 
around, but even these things like ANT-buildfiles might prove usefull 
one day.

Hmmm.. Somehow I feel like it wasn't such a big problem anyway, I just 
needed to have a better overview of the possibilities.... TNX for making 
things clear...

Mark

Re: Expresso vendor branching

Posted by Sean Laurent <se...@neuronfarm.com>.
On Wednesday 14 July 2004 06:22 am, Mark Kikken wrote:
<TEXT DELETED>
> However, the problem with expresso is, that it is not exactly a branch.
> Expresso is a fully-functional web-application in itself, and not just
> some files in a subdirectory of my project. The idea is that you add
> classes to the expresso source to add functionality and register these
> as an application with expresso. So, it's more like writing a vendor
> branch for Expresso, than the other way around.
> To make things even more complicated, the expresso sourcecode-tree has
> the be restructured to be able to use it with the Eclipse IDE (which I
> intend to do).

Well, here's my 2 cents... *grin*

No matter where or how you preserve the Expresso source, if you restructure 
the Expresso tree, it will be more difficult to bring the changes from a new 
version of Expresso.

With that out of the way, why ~don't~ you treat it just like a vendor branch?

/repo
  /vendor
    /expresso
      current/

Import your original version of Expresso into /repo/vendor/expresso/current.  
Commit it.  Tag it by copying it to something like /repo/vendor/expresso/5.5.  
Then copy it into your main development line (let's call that trunk).  Add 
your custom code inside the directory for expresso or underneath it... 
whatever works for Expresso:

/repo
  /trunk
    /expresso
      /mycode
  /vendor
    /expresso
      current/
      5.5/


Okay, now what happens when you want to bring Expresso 5.6?  Use one of the 
handy Perl scripts to merge between your new copy of the Expresso 5.6 source 
and /repo/vendor/expresso/current.  Once you resolve all conflicts, tag it as 
/repo/vendor/expresso/current/5.6.  Then do a merge between expresso/current 
and trunk/expresso.

Of course, if you have restructured the Expresso code, that will make 
importing new versions very difficult to automate and you will probably have 
to do the merge by hand.

Hope this helps.

-Sean

------------------------------
The only difference between a rut and a grave is the depth.
------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org