[mythtv] General SVN info

Michael T. Dean mtdean at thirdcontact.com
Tue Jan 17 18:24:38 UTC 2006

On 01/17/06 01:49, Chad wrote:

> If I maintain a single SVN source and pass it around my network to
> different systems (64-bit, athlon-xp, and P3's), how do I 'make clean'
> everything once the source is copied over to the new system. What is
> currently happening is I scp the 'mythtv' directory from one of my P3
> machines to the 64-bit machine (different distro's, different GCC's,
> different arch) and try a make clean, make distclean, but still get
> complaints about files not being where they are supposed to be (I have
> Makefile's that reference the location of QT files on the old system).
> So I'm wondering what I'm missing/mis-understanding.

Totally different approach, but it works well for me.  It's similar to 
the make distclean, but I always copy a pristine source directory by 
tar'ing up the source after update and then compile--so the tar file 
contains a source directory that's never been used for compilation.  
Next time I compile, I delete the existing source directory and untar 
the last checkout, update, and tar...

I untar the previous checkout into my working directory (the first time, 
just do an svn co into your working directory) and from that directory 
(the one containing the mythtv, mythplugins, and myththemes directory):

echo Last Updated: `date` > mythtv-update.log &&
( svn update mythtv mythplugins myththemes 2>&1 | tee -a 
mythtv-update.log &&
  exit $PIPESTATUS ) &&
tar cjf ../myth-`date +'%Y%m%d'`.tar.bz2 *

This gives me a nice record of when I updated (first line of 
mythtv-update.log) and what revision I have (at the end of the update, 
SVN outputs "Updated to revision XXXX") as well as a list of files which 
changed since my last update, and the record is stored in the tar.bz2 so 
it doesn't get lost. Also, by updating all three on the same command 
line, I don't have to worry about getting a different revision of mythtv 
and mythplugins or something.

This has the benefit that you're always building everything, so you 
never have the "partial build" problems when you miss a "needs a make 
distclean" commit message.  However, it means that every time you do an 
update you're always building from scratch, so build times will probably 
be longer.  Also, since you've never built anything in the tar file, all 
your machines can have different directory layouts (i.e. you'll never 
have a problem with incorrect relative paths in the Makefiles if you 
forget to make distclean on the machine you used to build).

And, finally, the biggest benefit is that I always have a clean copy of 
the SVN source, so I can rollback without using any of Myth's bandwidth 
after I find that some changes I made totally messed up Myth.  :)


More information about the mythtv-dev mailing list