Return-Path: X-Original-To: apmail-subversion-users-archive@minotaur.apache.org Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E512A786F for ; Sat, 29 Oct 2011 00:05:54 +0000 (UTC) Received: (qmail 10795 invoked by uid 500); 29 Oct 2011 00:05:54 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 10768 invoked by uid 500); 29 Oct 2011 00:05:54 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 10761 invoked by uid 99); 29 Oct 2011 00:05:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 29 Oct 2011 00:05:53 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of nkadel@gmail.com designates 209.85.160.171 as permitted sender) Received: from [209.85.160.171] (HELO mail-gy0-f171.google.com) (209.85.160.171) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 29 Oct 2011 00:05:46 +0000 Received: by gyg13 with SMTP id 13so5648230gyg.16 for ; Fri, 28 Oct 2011 17:05:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Hi/j8mIvODdaO6X8opzI/a1mxFbKNO/m17oU4oaXDjc=; b=gnsZKPdDDjrah4c7k5nztAfHCM3tm2cwf/tG/HNmY0F/AJ/OpJePRigMCv7IifzNc6 8B9coJri7OhMOTsM/2wXjLl8JrNQMsIbihV/DnUZOS6brpn9NqJmI7gxj0VzqT3+KYgJ Ecaz0VvsBTsKRK1ogAfVJHGa9f6gSMtholfwI= MIME-Version: 1.0 Received: by 10.68.72.33 with SMTP id a1mr6678037pbv.44.1319846376311; Fri, 28 Oct 2011 16:59:36 -0700 (PDT) Received: by 10.68.63.5 with HTTP; Fri, 28 Oct 2011 16:59:36 -0700 (PDT) In-Reply-To: <4EA7EDC2.10706@jibbyjobby.co.uk> References: <4EA7EDC2.10706@jibbyjobby.co.uk> Date: Fri, 28 Oct 2011 19:59:36 -0400 Message-ID: Subject: Re: SVN repo cross-platform compatibility From: Nico Kadel-Garcia To: Neil Bird Cc: users@subversion.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Wed, Oct 26, 2011 at 7:23 AM, Neil Bird wrote: > > =A0Whilst suffering a subversion server outage, it's made me wonder: =A0w= e > currently produce nightly backups of our repos via 'hotcopy' from the > server's local drive to a network store. > > =A0If the server were to die, would I be able to take those copies and pl= ace > them under a server on a new box *with a different OS*? =A0Or would I hav= e to > create a temporary server with the original OS, copy them to that, and > svndump them and import them elsewhere? > > =A0In this case, it's a Solaris server, dunno what processor [I'll check = when > it's back up!], and I'd consider moving it to an x86 Linux server. Never do this by direct filesystem replication. "hotcopy" is somewhat better. Issues with transfer via hotcopy include the fact that hotcopy *does not* replicate file permissions and file ownership, it simply copies them as whoever runs the "svnadmin hotcopy" command. That can cause *enormous* problems in various configurations. And between operating systems, the "hook" or "conf" tools that are incompatible between the system's scripting languages. Worse, if your new OS does not have an equal or greater Subversion major release, the hotcopy will likely be incompatibile with the new OS. I spent one *hell* of a time last year, when someone had been running a handbuilt Subversion binary with a manually built and awkwardly configured service, and I was prevented by "policy" from updating the Subversion on RHEL 5.x, which was Subversion 1.4.x, to the publicly available Subversion 1.6.x from RPMforge. So I was compelled for political reasons, not techinical reasons, to continue to support the older and more fragile environments, and not permitted to migrate them for quite a long time. That said, you also face a very dangerous "split brain" issue if you simply set up the replicated, up to 24 hours out of date copy elsewhere and set up the same uuid, so users who've already checked out or checked in changes since the last snapshot will have a local working copy that is dangerously out of sync with the replica. Two diferent working copies can wind up with different ideas of whatever revisions occurred, and may wind up out of sync between the two repositories. All that said, Solaris=3D>Linux is fortunately a fairly easy migration. Similar releases of Subversion are available, unless you have a seriously out of date system that policy forbids you from updating. The trick is to keep the *non* db files, the hooks and conf files, mirrored separately and regularly, and keep a Linux read-only repository mirrored with "svnsync", Properly managed, the "svnsync" can even be triggered to occur after every successful commit, and always keep you within one revision of the master repository. If you have to do the replica, *use a new uuid* and inform your users that they have to deal with a new repository.