views:

445

answers:

4

Here's our problem, we are a Flex shop that uses .NET for the server side logic. We use subversion for our source control and subeclipse in Flex Builder but are still quite new to using source control let alone subversion. Branching and merging seems to work very well on the .NET side but we are running into issues on the Flex side because of the final swf being built on our local machine.

The question is, what does a usual workflow look like for working with Flex and SVN? Particularly, how do you branch and where do you build?

+2  A: 

Personally, I keep the Flash/Flex source code in a separate SVN repository that is away from what is deployed to any sort of web server. That way I can create branches and tags specifically for my Flash/Flex application. I also tend to publish any SWF's directly into my local copy of the deployment repository. It does not make sense to me to keep a published SWF under version control unless its part of the what is deployed to the server. I don't like to keep committing an SWF into my Flash source code repository because it takes up unnecessary space and all the source code should represent the latest version, not the resulting SWF.

Matt W
That's definitely a help - thanks Matt!
onekidney
+1  A: 

You'd probably want to branch your project alongside your .Net project so your flex releases are consistent with your server logic.

DyreSchlock
A: 

I agree with Matt W. At AKQA we have svn locations four our source and assets. We set up an svn ignore for the bin folders of a project. That way we aren't checking any swfs which means when we update we don't get someone elses swfs or output files.

A good bet is to look into continuous integration with something like cruise control. We build our output on the server which generates all of the files into one location on the server. There are loads of other benefits of continous integration and it's well worth having

James Hay
+2  A: 

We use a directory structure like this

+server-side-app
--trunk
--tags
--branches

+flex-client-app
--trunk
--tags
--branches

I would recommend something like that for yourself.