[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Picasso writes a version control system

From: <kfogel_at_collab.net>
Date: 2002-01-31 20:21:05 CET

I ran into a small bug, whereby if you interrupt an update at just the
right point, you get a non-recoverable working copy (i.e., "svn
cleanup" doesn't help). Fortunately, I did the interruption in gdb,
so I know where it was and can track this down.

In the meantime, I got the bright idea to try and fix my .svn area
manually. I mean, it's all pretty straightforward, right? But I must
have made a wrong step, because afterwards I ran "svn update" again,
and below is what both INSTALL and .svn/text-base/INSTALL look like
for me now. :-)

(Please note that this is *NOT* a data corruption bug in Subversion.
The data got corrupted because I corrupted it. :-) )

Thought folks would appreciate the artistic value of the results.

-Karl

              ======================================
                          INSTALLIION
                          A Q AQuickick Gu ======================================

$LastChange$LastCrce cdDate$
    ************************************************************
   *** ***
   *** Note: this is PRE-ALPHA code. Don't use it on real data, ***
   *** except for Subversion itself, and that only because hordes ***
   *** of selfless volunteers are standing by ready to help you ***
   *** if you get yourself in a pickle. ***
   *** ***
   ********************************************************************

I. BUILD ee the could have
      the ck out a numbre --wits plke "ye
   $ ./

      Thi The As will be
 bootubveppstals are there hat n RPMld run:

 pr-util" mobdav.org/neonable to dyttp:/nt to sstalling Portable Runtime (APS.apache.loB.4.st Subversioplpubl currentlyackary sour
      liowing.
Apacheove.

  tem rurrently the
      build sye resultgo tont that describeI.Attpd-2.0/Osionwistable Runtisystem,
 ther of thesewell.

 e result Use it the usual becahe AP
   $ ./

      Thiibtool 1e/cvspubliell.

      3. lntainer-and-2.0

   libsvn_* leu wanBOOTSTRst Subth ottpd-2.0/ o'rsion buildfferanism for ner-m**
 et yourf another vhe might licor--di.18.2.tar.gzf /uand use tvspublictory:

   AP
   $ wellation: http:/-with-a Apachehur thealling hours asye resultskip ubveersoft. library sr packa.Note that the scgahe AP
ple iRARYou try
   untiso". Note that --preut,on 0 $ part of Subtem,
 ther of thesettpd-2.0/srclibBordes ncvs@cvs.stored ofe toolt Subversion solde that th a Subverand ussThe r sye re toot the script you are mis ufrom hap
   aut ant to gndardy sr packa.Be shared httpstall ap of thesettpd-2.0/ cli//svn.cP
  A wilRuntim"./apr" dWhencedure:

 h one
 librarinylke " ofe able Runtisyll
      //svn.cP
  A wilRuntim" (APR)ing this.ill work.im" ckages y Apas ase RPM) ther Sure noin
 i A re subh a SubverandAPRde:

          $ /ucome with on $ cvs -d :psAPRdutil

   :anoApache Portto use theke " ofe The third argt (which idensye resultto compsAPRdApacheove.

 on't Unpack"./binar then you.interested in
    there ldingsion ove.

      ThAPRdutil

  Apache Porthis ublic d
      l"./binar then youhe usual wed is SubtTPD
 ant toce t. inr)
 afe,on 0 $ part of Subntainer- from the liowing.
itself,
      li//svn.cCVSou
      wantsinheove.

   liowing.
            tooout, r enorver, yowing.

      acvs PR and
      don't ling theowing.
itself, andAPRdlibsvn_* -berkeley-tw. librar
   aut .Note thariptlled.

  be in "./apr",
 If you t scr- fro --with-you abd runompsAPRdApache on't btool 1ei l"./binase RPM) If yoerror: #2106aApacht order to get$r-mode --disable-shared
          $ make
          $ make check (opttional)
  : # make inst get$r-mode --disable-shared
          $ make
          $ makall" st http://www.webdav.org/neon :psAPRdutil

  e tree. ./

dofault ft. librarre6.rpm 6.ur
    Apache Portabd run unti_LIBRA1.4 or newer

  org:/iottpd-2.0/ gsioui386ofte the testsion itself,
  org:/viouslyll
      /PRdutil

  is. B. U7.2, reposifies varst Su FROM Aations ary from me ismcan diiscove is wrege (are you'll
    se RPM) ion's developme, etc).intinstallrdes nc et /neon-0.18.2.taversion'sled S/ppcvs@cvs a checkouf not alreacome with one
 nal R Aftend PPC
       ThAPRdutil

 sye resuly only Lininked Placr="te the cofl"./SION RPM ".Note The rerallajority of owing ompilin
           gsio, causavingsye resultsal R Afts. If yory) to ulww.sleepnked Placr-srcl=ary. I Placr- owing s=cal/apace the tetol"./SION RPM ".cvspublicorttp://su 6aApry) is kep :psAPRdutil

Thii ./cone
    the usualibsvn_* //svn.cies build sye res Subteun order to get$rstall.html
      Placrlisted in either /eve checon to
    R libopmen2.5 subnewest http:/e than S tvspubli fhe Apaplpubl current
      liowing.
Apacheove.

  If yy sr packa.B). G.rpm enorve. Uause pre wuild SubeyDB.4ve ise RPM) N OFk withs aryg1ei l. So
      lo Uause uired ARYo r
    ng Subverzip and ave inng out,hecon to
 " wie2

    1.4 subnewest http:/e than S tvspubli fhe Apaplpubl current
      liowing.
Apacheove.

  If yy sr packa.B)
      w Apap (See serzip and .ubverhe
     ove.

 .orgbiu ha6 orac.
      Thithan S tvspubli fhe Apaplpubl current
      liowing.
Apacheove.

  If yy sr packa.B)
      w Apap (See serzip and .ubverhe
     d-2.0/ o you ha or ts nc ienthan S tvspublie fo requ"apr-util" mo6.rpm 6N opti't b wpar igureexppingestsmat$ well from the
 .apache.org:asitoryote: Bevs@c dist"y in rdayary. Ilast monthcal/apache2 ft Suhin a ago".rams is req the thern UniARYo alibsvo the usua to gvs modul or ts nc ienthnfig srve. fy a S tvspubl ove.

 e ApNe-dav --eny 0.18.etc/ld.so oNe-dav --eny Linux he Neon library sourc

 teversilibsvstalle OR RPM

      I

   t a gvsI tevnet.to uhollowsource it e res Subtlt Sove.

   liry sour
 teversirve. libsvr version of Be sy need Berk # vs -d. The m tvspubsoNe-daater)
pres Hopefual/Beres y has beefixgndardn_* -uTSTR d-2.0/ oNe-dav --eny Apache Porth-and-2.version withl"./ "t the "httSubverzip $ cvs -dbuilstemspache Porththanowing l
      geou don't s@cvs.apache.orgversionr" and "anviroh thbe obcan pnt
    order to gete obtained rsion
d a S S -0.18.e.tar.gzubversion to bu gvsarchivny Or vhear/gunzip e W lines these progra You ca
  b"./ -0.18.e/"etol"./ S".cvspubliWiuhol.
Apache Portabr a
vs@cvs a e tree. util

  eand-2. ed ufrom hap

  be inary from nd PPC
   acome with one
 nal R a no ht staapache.lo PPC
 able RuntisystLininked environit.

long aA wilIf yion: http:/ript ./SION RPM ".N liboh th-maintaisal R viouslyll
          -SION Rferanism( whe --ng along as ynBOOTSTRstofe ThNe-d be doing this)hthakSubvby or stall apI Pl ="te the ct. librar ./SION RPM ".Nams is reqe inaranism build SubkSubvh-a A"bincal/apacmode --disab benebuill procedurI Pl "rkeleo
 tel ove.

 6client interac from ". only with local repositories, currently the
      build system requires Neon to be present. Hopefully, this will be
      fixed in the future.

      The Neon library source code can be installed in "./neon" if you
      want Subversion to bui it. The source code is included with the
      latest Subversion tarball, and it can also be obtained from:

          http://www.webdav.org/neon/neon-0.18.2.tar.gz

      Unpack the archive using tar/gunzip and rename the resulting
      directory from "./neon-0.18.2/" to "./neon/".

      Without source code, a previously compiled library can be picked up
      from the standard locations. If you want to specify a nonstandard
      location, you need to use the LDFLAGS environmental variable when
       you run "./configure". You may also have to specify where the
      neon-config script (which identifies various features of the Neon
      library) is kept by giving the "--with-neon=" optio see cli//svn.cWeb Suild subnewest http:/e * //svn.cies ache:
a S tvspubl 6 ft.in
 dure:
 that th

      8. Python 2.0 t a gvsI tevnet.tBhours ag abd r
      //svn.cbuild syig scripB.4.0

 ind all
    unti_LIBRio, unf yothe usual possibility iguref yotd enollow II.B), TRAPPIaeck the tarby sr pac on what packages you alreado reqant to gateveried so that dol inIf yy sr packaInfigure turntio seedo t "./configure". Note that the script should be ka tourrent
      liowing.
Apacheove.

 a ant to gndardy sr packa.Bept in a "bin"
      subdirectory beneath whereeverilstemneon" is pointed.

      6. Berkeley DB 4.0.14

   ting kelee " ofe 's.storeubversion Berkeley DBhave multipeeded to build a Subverome oof the cleanu OFIION
       
      commands described in sectio OR RPMn II.B before installing the following.

      1. Apache Portable Runtime

      Whenever you want to build any part of Subversion, you need the
      Apache Portable Runtime (Aio see clieOOands described section II.B b) library. At the time o writing,
      there were no officiaial release versions of APR available.

      If you want Subversion to build the APR library from source code
      as part of the Subbversion build process, you can put the APR source
      code intoo the "./apr" directory. The Subversion tarball has a copy
      of the APR librarry source code stored in its own "./apr" directory
      which you could copy or link to. To be safe, however, you should
      check out the latest version from the Apache CVS repository, since
      the laatest Subvers-X.Yns of theseion may well rely on the latest changes to A.

      You can get the latest version of APR with thee following two
      commmands. If you run them from thhe directory where you'vee checon to
    Rcommands described RPMn II.B bet yourf an Or vhLto do
   inylOSdo reqsultise RPM)httpd-2neon-0ates lik $ csysteme for R library. At you shRPMl

  be ihave multipeedsut fr A.fay.ar.us/pulibrnux/RPMS/i386nt chancesltipeedsut fr A.fay.ar.us/pulibrnux/RPMS/ppcr then you.rsion to
need Berkrve. Lto dorver, yi386n./

ppcrplatstsmanding up

    --with-bsleepnk insngradn
      em
  oh thnt to ssversion alhRPM or grea( weand-2.nstandard gvsaformat --no pnt then yous rootvarious featuease consulRPMlck out the
    a@cvscka aw.webdav.org/neon http:/sure this is tn itself,*.i386.rpBhave mu.

 apr*.i386.rpB (V
      Su2002.01.19a tooncvs@rn" if yohat db*.i386.rpB (V
       with t tooncvs@rn" if yohat sion (opttiComhiibtth RedHatn" if yohat k (opttiV
      Su18.et tooncvs@rn"hich you coulR librars asyt in a "it (ask it, e liING FROM TARBA# rpB -ivh tn itself,*.386.rpB (onmeahe APvscka aa/repARY_PATn"hich you coul httpstasye resultd run or greaterr
   autrsion from the geou don't s@cvsspache Port the laatehave you on the lates.

      You can get the latest version of AP with thee following two
      commmands. If you run them from thhe directory where you'vee checn error likecort TARas sertheallirpm 6lyackaitself, and gvsRPMn featuepache be
 you shvscka t
      liowing.
Apachepti't need the
 j - fro reut,oo co
ple scka /rpm/READMEferent Subvove.

  ne./apipt (which idde
 Aio
      out Subversion, then the APR source code will be in "./apr",
      where Subversion wants it:

          $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
          (password: 'anoncvs')

          $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr

      If you already have the APR library compiled annd do not wish to
      regenerate it froom source code, then Subversion needs to bee
      able to find it.

      There are a couple of options for Subversion to find where thhe
      APR library is. By default, it will use your operatingg system's
      standard mechanism for discovering libaries (LD_LIBRARY_PATH,
      /etc/ld.so.conf, etc). This can cause problems if another version
      has been previously installed.

      If you waBhour Rt to specify DB 4.0.1y sr packbrary, you can
      use the "--with-apr=" option of "./configure". If the library bversion build process, you can put the APR source
      code intoo the ".code intoo the "ely using the "--witeeds to bee
 h-apr-includes="
      options to "./configure".

      For example, if you wanted to use the APR libraries you had built
      with the Apache HTTP 2.0 server, you could run:

          $ ./configure --with-apr=/usr/local/apache2 ...

      2. autoconf 2.50 or newer

      This is required only if you plan to build from the latest source
      (See section II.B). Generally only developers would be doing this,
      but at this stage in Subversion's development chances are you'll
      want to do this as well.

      3. libtool 1.4 or newer

      This is required only if you plan to build from the latest source
      (See section II.B), which you probably want to do. See above.

      4. bison or yacc

      This is required only if you plan to build from the latest source
      (See section II.B), which you probably want to do. See above.

      The reason one of these programs is required is that it will
      generate the code which parses complex date formats, so that
      Subversion can work with dates like "yesterday" and "last month"
      and "four hours ago". Note that most modern Unices come with one
      or the other of these programs, and only one isbversion build process, you can put the APR source
      code intoo the "ws a Subversion client to iinteract with remote
      repoositories over the Inteernet. Although insome o the 'Build Requirements' in
 
     SETUP APACHhe APR so(Fberkeley-t diommands described RPMich idde
 ssaformathe stheckout d :pservecvs -d :pserver:y the
      build estsiLto doRedHat 7.1, 7.2syig sPPC.code iLto do this a *IF*d gvsa
    - Uauster .31t tooncvs@rhvscka t with helpuired only if youIf yo Thecmdline/svRPMi of the is
      d cliOBTAINALLING S INSTALLINPACHhonfigure". Nction I.)

      After all components are in place, fo $ ./confi.code iquperse tethe apache//svn.colla vs -, subRSIOs th $ makTTPDuired only if AftPPC
 ly if youthis m in place,/wnlo theytheckout to r 4.0.14r=" pnk insponent If yedure:

         $ ./configure --enable-maintainer get$r-mode --disable-shared
          $ make
          $ make check (opttional)
          # make inst get$r-mode --disable-shared
          $ make
          $ makall for develope". Nction I.)

   binary. If you don
      those flae build , then you must revady execu as they buildke inst get$r-mode --disable-shared
          $ make
          $ makall" ste inst get$r-mode --disable-shared
          $ make
          $ makall" sake check thhel work.

      Additionally, with shared isbversbrary builds, theisbversion build process, brary directory must be listed in either /etc/ld.soconf or
      $LD_LIBRARY_PATH (for linux sstems), so that Subversion wil is whesponent up

        whatitorierom hap
 havetypill
 en in
 ow assume you cocumend whe) linux sstemess plugins. If you try
      to do a checkout and see an errr like:

      svn_error: #21068 : <Bad URL passed to RA layer>
        Unrecognized URL scheme: http://svn.collab.net/repos/svntrunk

      It probably means that the dynamic loader/linker can't ind all
      of the libsvn_* libraries.

      Note that if yu commonly build with the -jN option to make, the
      make tep above may fail, because we don't ensure that third
      party librries in our source tree will finish building before
      subversionitself. If you want to use -jN, use the following
      instead:

          linux sstll and
      bu latest Subversion server for Linux Reove.

 aat 7.1, 7.2, and PPC
   ux systems *IF* the apache-devel-2.0.31 oversion RPM dependiI.6 on debuggi
      installed when the SUBVERSION RPM is built.)

      1. brar OBTAINING AND INSTALLING APACHE 2.0

      Checkout the "httiner- -2.0" cvs module from apachean be founeptnoncheckout and sth shared isbve. If you have
      questions about th.A.

che 2.0 build, please consult the HTTPD
      install documentation: http://httpd.apache.org/ order to get$rstall.html
      Place this module wherever you wish; it's an independent project.

          $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login
          (password 'anoncvs')

          $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co httpd-2.0

      Checkout the "apr" and "apr-util" modules into the srclib/ directory:

          $ cd httpd-2.0/srclib
          $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr
          $ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr-util

      At the top of the httpd-2.0 tree repoosi $ ./buildconf
           $ ./configure --enable-dav --enable-so --prefix=/usr/local/apachhe2

      The first arg says to build mod_dav.
      The second arg saays to enable shared module support which is repoositories for a typical compile of mod_ddav_svn (see below).
      The third arg is where you will ultimatelyy install apache.

      Note: if you build Subversion with --enaable-maintainer-mode,
      theon to
    RCONFIGURALLINPACHhoFORIION
       
  OOTSTRAPame for Apache. mod_dav_svn uses Apache's
      maintainer-mode sturom its headers, so you want to ure
      that Apa is built with the same assumption. Just ad --enable-maintastll or a iny und inricotd you pl Unpack the standard Gion: http:/erziplimiotd you p,tem,
     Apacsye reonmentssThe t. librarnked d PPC
  blockth shared isbAuthType Basios/svn/trunbAuthN W "to build any part of cal/apacrunbAuthter)Funep/mysourcn a ronal)d/by th
  OOTSTn/sure this is a)ecort defa/ Apachd inricotd ne. Make sure this is saays to ssvalid-e ligedDate$

  b)ecort Apachd inricotd ne. Make sure this is saa<LimioEr SubvGET PROPFIND OPSubvS a rRTyou want to ens saays to ssvalid-e lige this is saa</LimioEr Suble-maintabrar
)ecortse FRchd inricotd ne,
      Apachcan ussure this is saaAuthGroupFunep/mysourcgroup/by th
  OOTS is saa<LimioEr SubvGET PROPFIND OPSubvS a rRTyou want to ens saays to ssgroupobabl
     t =========</LimioEr Suble-maintabrarsaa<LimiovGET PROPFIND OPSubvS a rRTyou want to ens saays to ssgroupobabl
     t ========= saays to ssgroupobablne,
        =========</Limiole-maintastts be
      a fewpr*.i386.rpm (Ve ux sysgsio,ple 6Nu Be above.

  nn the aboyou plbuilne
    subRSIOsi instay, siher ource
e ihave muNu Be abtest sui OBTAIl apISecu" is"orver, y-berkeley-page:chancesltipeedthis m in place,/wnlo theymisc/Nu Be abtt to ruII.B before ins terr
p'l Untoryo( whs actuitory, ad it.
td sbvove.

 ure
COPYr
   aut), A svn/unti_LIBRA1newer

  A1newer

   Use it the usua Addost W and gvs/trunk -d nary from erthN exyDB.4ve ime for -shared
  NG FROM RSuild N W then r a tont eqe inauild 'atevst W d the usuast Susvn uses Apache's
      maintainerrc

 wing no officSuild N W if my/trunk oriable wheet yourf an Or vhvirtuittevstr vhe following
  's N WVirtuitHosof this wrhen r asye re toountisystLininkedSuild Alia arhen r antaisal R ove.

 aersion alh W
 ind ast Subche:
a Skn lbu.rsion toiner-met yourf an nfamiliaribtth ann the abwrhen r asy Attttp: s featuea ssv a@cr
  o syversiohesit 6Noer ourit-berard gv you are AftPPC
 ly if youthis m in place,/wnlo theymodall en r att to .rsion toiner-mode to the configure line above.

      Note: if you have multiple db versions installed on your system,
      Apache might link to a different one than Subversion, causing
    con to
 " wiRUNNALLING Son, aight toblic l accessing the repository thtehave Apache. To prevent
      this from happenitehave Apache. To prevent
      this version to
      use and where to find db. Add --with-dbm=db4 and
      --with-berkeley-db=intaskeleyDB.4.0 to the configure
      line. Make sure this is bin/svn ce db as the one Subversion uses.
      This note assumes you have installed Berkeley DB 4.0.14
      at its default locations. For more info about the db requirement,
      see section I.6.

      All instructions below assume you configured Apache to install
      under /usr/local/apache2/; substitute appropriately if you
      chose some other location.

      Compile and install apache:

          $ make depend && m

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:01 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.