[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. :)
Mike
More information about the mythtv-dev
mailing list