SVN misplaces my Flex project-files

A little over a week ago I made a post about Flex running old versions of my SWF. In a nutshell; Flex Builder 3 seemed to disregard any changes I made to the classes in my (Actionscript-only) project, and compile an SWF with older versions of the edited classes.

A few days later however, I concluded that it was not so much Flex 3 that was causing this issue, but rather Subversion.

Whenever I commited my changes to the Subversion-repository, the latest run-files (Main.swf and Main.html) from the bin-debug-folder on my harddisk would be commited to the html-template-folder in the repository.
As the html-template-folder serves as a template-depot (duh) for your Flex project, any files in it will be copied to the bin-debug-folder after compilation, effectively overwriting your freshly compiled SWF in this scenario.

Initially, this may go by unnoticed, as it will not be untill you update your project (or do a new checkout of the same project), that the run-files will be in the html-template-folder.

I work around this issue by commiting, updating, and removing the run-files from the html-template-folder, but I have yet to come across a proper solution for this problem. So any suggestions are more than welcome. The same goes for any explanation about this strange issue with Subversion..

UPDATE:Through the comments someone exlained where this issue is coming from, here’s a quote:

“your bin, bin-debug and html-template directories should *NOT* be committed to svn.

The problem you are having is that it’s copying all of the files in the html-template folder into the bin-debug folder, including the .svn hidden folder. SVN uses the .svn folder to determine where to put the files in the repository, so when you copy that folder, even though it’s in a different folder than when it started, the files will continue to be copied into the original location.”

UPDATE: ..also, if you would like to keep these folders in your SVN-repository nevertheless, here’s what you’ll need to do (credits go to Matthew for this one):

“Goto your project properties and pull up the Flex Compiler tab and the first checkbox you should see says somethign to the effect of “Copy non-embedded files to the output directory”, well uncheck that. This will allow you to keep your bin folders in the repo”

12 Responses

Note that comments are displayed in reverse chronological order with topmost comments being freshest. Subscribe | Comment
  • Ryan Mac says so:
    July 1st, 2008 | Quote

    Thanks again for this advice.

  • Ruben says so:
    April 23rd, 2008 | Quote

    Hahaha, well alright, if no-one else does so I’ll take that burden ;)

  • a says so:
    April 23rd, 2008 | Quote

    Whoever wrote this saved my life. You have a beer on me. I was wondering why svn f*** up everything and I suspected bin and html-template but I wasn’t sure. Thanks dude.

  • Andrei Stoleru says so:
    April 13th, 2008 | Quote

    First off all you shouldn’t use the bin/html folder.
    In Flex 3, from the Project menu choose “Export release build”. It will create a smaller swf (without the debug code).

    Nice work on the AI ;)

  • Ruben says so:
    April 6th, 2008 | Quote

    Nice! That’s even better, thanks man!

  • Matthew Scott says so:
    April 6th, 2008 | Quote

    Rubin,

    Here is the solution for I have been fighting with this since the day I started using flex. Goto your project properties and pull up the Flex Compiler tab and the first checkbox you should see says somethign to the effect of “Copy non-embedded files to the output directory”, well uncheck that. This will allow you to keep your bin folders in the repo for I know if you using auto updating dev sites (shared among other people) than you would like to keep it in svn to handle this for you.

  • jacob says so:
    March 27th, 2008 | Quote

    don’t know if its the same problem but I am now able to commit entire projects since I have switched to subversive instead of subclipse inside flex

    http://www.eclipse.org/subversive/index.php

  • Ruben says so:
    March 26th, 2008 | Quote

    Spot on dusty! Thanks so much for the solution. :)

  • dusty says so:
    March 26th, 2008 | Quote

    your bin, bin-debug and html-template directories should *NOT* be committed to svn.

    The problem you are having is that it’s copying all of the files in the html-template folder into the bin-debug folder, including the .svn hidden folder. SVN uses the .svn folder to determine where to put the files in the repository, so when you copy that folder, even though it’s in a different folder than when it started, the files will continue to be copied into the original location.

  • Clayton says so:
    March 26th, 2008 | Quote

    mm, try adding bin-debug to your ignore list… there doesn’t (usually) seem to be a real need to have bin-debug committed in the first place since all the files there should be derived from html-template.

    you can update your SVN config file to always ignore bin-debug:
    %APPDATA%\Subversion\config (in Windows)

    Modify the global-ignores line, e.g:
    global-ignores = bin-debug

Trackbacks:

Leave a Reply