You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by kf...@collab.net on 2002/01/31 19:21:05 UTC

Picasso writes a version control system

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