0

I am deploying some embedded linux machines to the field, where they will not have internet or LAN access to our subversion server. The only way I will be able to administrate them is by connecting my laptop to their ethernet port and logging in through SSH.

Before deploying them, I can make sure their SVN working copies are up to date, but afterwards I plan to continue developing their application.

Is there a way to sort of "push" these new updates to the deployed units using just my laptop, while maintaining the integrity of their checkouts (i.e. without manually copying the updated files over)?

Follow-up question: If that's not possible, is there a way to copy over the full checkout information so the deployed unit thinks it has been updated properly?

2
  • This may sound harsh, but ... Use git or a DVCS.
    – BatchyX
    Mar 7, 2013 at 15:29
  • Not really an option at this point. I'll take note of it for next time.
    – Chriszuma
    Mar 7, 2013 at 15:55

1 Answer 1

2

First of all I wonder if you really have to use SVN to deploy to the embedded machines.

I think it would be cleaner to export your repository to some temporary folder on your laptop and then push the changes using rsync

svn export <repo>/folder_to_export
rsync -vaz folder_to_export/ user@embedded:target_folder

If you have to use SVN then dump the latest version of your repository locally to your laptop then login to your embedded devices and first time do svn co <repo on laptop>. Then next time login to the embedded device and and just do svn up. Of course having made sure to copy the latest SVN repository to your laptop.

Some info about migrating Subversion repositories can be found here:

http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate

3
  • Thanks, I ended up using rsync. Turns out if you sync the .svn directory too, then the checkout will be happy and report the updated version on the deployed machine.
    – Chriszuma
    Mar 8, 2013 at 14:36
  • 1
    I am happy that it works. However I think I do not follow why you need to deal with svn on the deployed machines at all. I am just curious as to the reason, there might be a good one in your particular case.
    – AxelOmega
    Mar 8, 2013 at 18:07
  • It's mostly for my own sanity. I need to be able to conclusively know that all machines have the exact same code running. During development this was accomplished using SVN because it's what my company uses. In deployment, it seems like the most straightforward way to keep track of somewhat-frequent code changes.
    – Chriszuma
    Mar 8, 2013 at 20:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .