You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

881 lines
13 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Tracking the source code with SVN</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Bochs User Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Installation"
HREF="installation.html"><LINK
REL="PREVIOUS"
TITLE="Installation"
HREF="installation.html"><LINK
REL="NEXT"
TITLE="Installing a Binary"
HREF="install-binary.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Bochs User Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="installation.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 3. Installation</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="install-binary.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="GET-SRC-SVN"
>3.2. Tracking the source code with SVN</A
></H1
><P
>SVN (Subversion) is a tool used by many software developers to manage changes
within their source code tree. SVN provides the means to store not only the
current version of a piece of source code, but a record of all changes (and who
made those changes) that have occurred to that source code. Use of SVN is
particularly common on projects with multiple developers, since SVN ensures
changes made by one developer are not accidentally removed when another
developer posts their changes to the source tree. The Bochs source code and
documentation are available using SVN<A
NAME="AEN399"
HREF="#FTN.AEN399"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
>.</P
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN402"
>3.2.1. Checking out Bochs</A
></H2
><P
>When you have SVN installed, the first step is to do a checkout. The initial
checkout command is long and ugly, but usually you only have to do it
once. The example below shows the SVN checkout process of the Bochs trunk in Unix.
On the Windows platform, you can download a SVN client from
<A
HREF="http://subversion.apache.org/packages.html#windows"
TARGET="_top"
>subversion.apache.org</A
>,
or use SVN within Cygwin<A
NAME="AEN406"
HREF="#FTN.AEN406"
><SPAN
CLASS="footnote"
>[2]</SPAN
></A
>.
<DIV
CLASS="FIGURE"
><A
NAME="AEN409"
></A
><P
><B
>Figure 3-1. Checking out Bochs in SVN</B
></P
><PRE
CLASS="SCREEN"
> user$ <B
CLASS="COMMAND"
>svn co http://svn.code.sf.net/p/bochs/code/trunk/bochs bochs</B
>
A bochs/ltdl.c
A bochs/Makefile.in
A bochs/bochs.h
.
. (This might take a few minutes, depending on your network connection.)
.
A bochs/install.sh
U bochs
Checkout, Revision 10754.
user$ <B
CLASS="COMMAND"
>cd bochs</B
>
user$ <B
CLASS="COMMAND"
>ls</B
>
aclocal.m4 cpu logio.cc pc_system.cc
bios cpudb.h ltdl.c pc_system.h
bochs.h crc.cc ltdlconf.h.in plugin.cc
build disasm ltdl.h plugin.h
bx_debug doc ltmain.sh README
bxversion.h.in docs-html main.cc README-plugins
bxversion.rc.in extplugin.h Makefile.in README.rfb
CHANGES fpu memory README-wxWindows
config.cc gdbstub.cc misc TESTFORM.txt
config.guess gui msrs.def TODO
config.h.in host osdep.cc win32_enh_dbg.rc
config.sub install-sh osdep.h win32res.rc
configure instrument param_names.h wxbochs.rc
configure.in iodev PARAM_TREE.txt
COPYING load32bitOShack.cc patches
user$ _</PRE
></DIV
></P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
> This is just an example output of a checkout of specific version of the Bochs
trunk and folder. Depending on the checkout command and revision, you most
likely will see more/other files.</P
></BLOCKQUOTE
></DIV
><DIV
CLASS="TIP"
><BLOCKQUOTE
CLASS="TIP"
><P
><B
>Tip: </B
>If you have write access to the Bochs SVN tree, see the Developers Guide
<A
NAME="AEN420"
HREF="#FTN.AEN420"
><SPAN
CLASS="footnote"
>[3]</SPAN
></A
> for details.</P
></BLOCKQUOTE
></DIV
><P
>The SVN checkout process (above) gives you a directory called <TT
CLASS="FILENAME"
>bochs</TT
>
that contains the very latest source code. I will refer to this directory
as <CODE
CLASS="VARNAME"
>$BOCHS</CODE
>. In this directory there's also a subdirectory called ".svn"
which tells the SVN software where the code was checked out, what version
you have, and where to go for future updates.</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN427"
>3.2.2. Getting the Latest Version</A
></H2
><P
>Most developers use SVN to always give them the latest source code. The minute
that any developer checks in a change, they are available to everyone else
through SVN. You just have to type <B
CLASS="COMMAND"
>svn update</B
> in the
<CODE
CLASS="VARNAME"
>$BOCHS</CODE
> directory, and SVN will retrieve any files and directories that have
been changed since you did a checkout. If you update regularly, each update
takes a short time because it downloads only the files that changed.
See also <A
HREF="get-src-svn.html#SVN-RELEASE-VERSION"
>Getting a release version</A
>.</P
><P
>The <B
CLASS="COMMAND"
>svn update</B
> command tells you if any new files have
been downloaded from the server, and it also tells you if you have modified any
of the SVN-controlled files. As it checks through the source directories, it
will list files that have changed, with a single letter before the name that
tells the status of that file. The most common status letters are listed
below.
<DIV
CLASS="TABLE"
><A
NAME="AEN435"
></A
><P
><B
>Table 3-1. Status letters in a SVN update</B
></P
><TABLE
BORDER="1"
FRAME="border"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Letter</TH
><TH
>Meaning</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
>?</TD
><TD
>unknown</TD
><TD
> This file is in your bochs directory, but SVN does not know anything
about it. For example, when you compile Bochs, any files created
during the build process appear as ?.
</TD
></TR
><TR
><TD
>U</TD
><TD
>update</TD
><TD
> SVN downloaded a new version of this file because it changed on the
server, usually because someone else did a checkin.
</TD
></TR
><TR
><TD
>A</TD
><TD
>added</TD
><TD
> SVN downloaded a newly added file from the server.
</TD
></TR
><TR
><TD
>D</TD
><TD
>deleted</TD
><TD
> This file has been deleted on the server and SVN removed it from your
local copy.
</TD
></TR
><TR
><TD
>C</TD
><TD
>conflict</TD
><TD
> You have changed this file on your disk, but this change conflicts with
a change that was checked in. Conflicts occur when two people change
the same line of code in different ways. You need to edit the
conflicting file(s) and clean it up by hand. Or, sometimes it's
easiest to discard your own edits and download a fresh copy, by
deleting the conflicting file and running svn update again.
</TD
></TR
></TBODY
></TABLE
></DIV
></P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="SVN-RELEASE-VERSION"
>3.2.3. Getting a Release Version</A
></H2
><P
>You can also use the SVN checkout command to get the Bochs source code for
any release since March 2000. The command is
<PRE
CLASS="SCREEN"
> user$ <B
CLASS="COMMAND"
>svn co http://svn.code.sf.net/p/bochs/code/tags/<TT
CLASS="REPLACEABLE"
><I
>tagname</I
></TT
>/bochs bochs</B
></PRE
>
The <TT
CLASS="REPLACEABLE"
><I
>tagname</I
></TT
> tells which release you want, and it can be one of the following:
<DIV
CLASS="TABLE"
><A
NAME="AEN471"
></A
><P
><B
>Table 3-2. Bochs Release Tags</B
></P
><TABLE
BORDER="1"
FRAME="border"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Bochs version</TH
><TH
>Release tag for SVN</TH
><TH
>SVN revision</TH
></TR
></THEAD
><TBODY
><TR
><TD
>2.6.9 (intermediate)</TD
><TD
>REL_2_6_9_FINAL</TD
><TD
>13181</TD
></TR
><TR
><TD
>2.6.8 (intermediate)</TD
><TD
>REL_2_6_8_FINAL</TD
><TD
>12740</TD
></TR
><TR
><TD
>2.6.7 (intermediate)</TD
><TD
>REL_2_6_7_FINAL</TD
><TD
>12531</TD
></TR
><TR
><TD
>2.6.6 (bugfix)</TD
><TD
>REL_2_6_6_FINAL</TD
><TD
>12375</TD
></TR
><TR
><TD
>2.6.5 (intermediate)</TD
><TD
>REL_2_6_5_FINAL</TD
><TD
>12349</TD
></TR
><TR
><TD
>2.6.2 (bugfix)</TD
><TD
>REL_2_6_2_FINAL</TD
><TD
>11694</TD
></TR
><TR
><TD
>2.6.1 (intermediate)</TD
><TD
>REL_2_6_1_FINAL</TD
><TD
>11667</TD
></TR
><TR
><TD
>2.6</TD
><TD
>REL_2_6_FINAL</TD
><TD
>11395</TD
></TR
><TR
><TD
>2.5.1 (bugfix)</TD
><TD
>REL_2_5_1_FINAL</TD
><TD
>10946</TD
></TR
><TR
><TD
>2.5</TD
><TD
>REL_2_5_FINAL</TD
><TD
>10801</TD
></TR
><TR
><TD
>2.4.6</TD
><TD
>REL_2_4_6_FINAL</TD
><TD
>10202</TD
></TR
><TR
><TD
>2.4.5</TD
><TD
>REL_2_4_5_FINAL</TD
><TD
>9914</TD
></TR
><TR
><TD
>2.4.2</TD
><TD
>REL_2_4_2_FINAL</TD
><TD
>9568</TD
></TR
><TR
><TD
>2.4.1</TD
><TD
>REL_2_4_1_FINAL</TD
><TD
>9368</TD
></TR
><TR
><TD
>2.4</TD
><TD
>REL_2_4_FINAL</TD
><TD
>9289</TD
></TR
><TR
><TD
>2.3.7</TD
><TD
>REL_2_3_7_FINAL</TD
><TD
>8537</TD
></TR
><TR
><TD
>2.3.6</TD
><TD
>REL_2_3_6_FINAL</TD
><TD
>8111</TD
></TR
><TR
><TD
>2.3.5</TD
><TD
>REL_2_3_5_FINAL</TD
><TD
>7840</TD
></TR
><TR
><TD
>2.3</TD
><TD
>REL_2_3_FINAL</TD
><TD
>7538</TD
></TR
><TR
><TD
>2.2.6 (intermediate2)</TD
><TD
>REL_2_2_6_FINAL</TD
><TD
>7060</TD
></TR
><TR
><TD
>2.2.5 (intermediate1)</TD
><TD
>REL_2_2_5_FINAL</TD
><TD
>6942</TD
></TR
><TR
><TD
>2.2.1 (bugfix1)</TD
><TD
>REL_2_2_1_FINAL</TD
><TD
>6624</TD
></TR
><TR
><TD
>2.2</TD
><TD
>REL_2_2_FINAL</TD
><TD
>6476</TD
></TR
><TR
><TD
>2.1.1 (bugfix1)</TD
><TD
>REL_2_1_1_FINAL</TD
><TD
>5560</TD
></TR
><TR
><TD
>2.1</TD
><TD
>REL_2_1_FINAL</TD
><TD
>5441</TD
></TR
><TR
><TD
>2.0.2 (bugfix2)</TD
><TD
>REL_2_0_2_FINAL</TD
><TD
>4592</TD
></TR
><TR
><TD
>2.0.1 (bugfix1)</TD
><TD
>REL_2_0_1_FINAL</TD
><TD
>4491</TD
></TR
><TR
><TD
>2.0</TD
><TD
>REL_2_0_FINAL</TD
><TD
>4409</TD
></TR
><TR
><TD
>1.4.1 (bugfix1)</TD
><TD
>REL_1_4_1_FINAL</TD
><TD
>2513</TD
></TR
><TR
><TD
>1.4</TD
><TD
>REL_1_4_FINAL</TD
><TD
>2235</TD
></TR
><TR
><TD
>1.3</TD
><TD
>REL_1_3_FINAL</TD
><TD
>1705</TD
></TR
><TR
><TD
>1.2.1 (bugfix1)</TD
><TD
>REL_1_2_1_FINAL</TD
><TD
>912</TD
></TR
><TR
><TD
>1.2</TD
><TD
>REL_1_2_FINAL</TD
><TD
>797</TD
></TR
><TR
><TD
>1.1.2 (bugfix3)</TD
><TD
>REL_1_1_2_BASE</TD
><TD
>510</TD
></TR
><TR
><TD
>1.1.1 (bugfix2)</TD
><TD
>REL_1_1_1_BASE</TD
><TD
>57</TD
></TR
><TR
><TD
>1.1 (bugfix1)</TD
><TD
>REL_1_1_BASE</TD
><TD
>51</TD
></TR
><TR
><TD
>1.0 (bochs-2000_0325a)</TD
><TD
>REL-bochs-2000-03-25</TD
><TD
>7</TD
></TR
></TBODY
></TABLE
></DIV
>&#13;</P
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN628"
>3.2.4. More about SVN</A
></H2
><P
>Entire books have been written on SVN, so there's no sense in duplicating
it all here in the Bochs documentation. Some sources of additional
information are listed below.</P
><P
></P
><UL
><LI
><P
>The <A
HREF="http://subversion.apache.org"
TARGET="_top"
>subversion.apache.org
site</A
> has tons of SVN FAQs and documentation.</P
></LI
><LI
><P
>A German <A
HREF="http://pvs.uni-muenster.de/pvs/lehre/WS06/projekt/svn-faq.html"
TARGET="_top"
>SVN FAQ</A
>
is available at University of Muenster.</P
></LI
></UL
></DIV
></DIV
><H3
CLASS="FOOTNOTES"
>Notes</H3
><TABLE
BORDER="0"
CLASS="FOOTNOTES"
WIDTH="100%"
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN399"
HREF="get-src-svn.html#AEN399"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
>You can download SVN software and documentation from
<A
HREF="http://subversion.apache.org"
TARGET="_top"
>subversion.apache.org</A
>.</P
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN406"
HREF="get-src-svn.html#AEN406"
><SPAN
CLASS="footnote"
>[2]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
>Cygwin is an open source Unix-like environment for Windows platforms,
available at <A
HREF="http://www.cygwin.com"
TARGET="_top"
>www.cygwin.com</A
>.</P
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN420"
HREF="get-src-svn.html#AEN420"
><SPAN
CLASS="footnote"
>[3]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
>See the <A
HREF="../development/resources.html"
TARGET="_top"
>Developers Guide</A
>
and/or look at
<A
HREF="http://sourceforge.net/apps/trac/sourceforge/wiki/Subversion#Access"
TARGET="_top"
>SourceForge's Subversion documentation</A
>,
for instructions.</P
></TD
></TR
></TABLE
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="installation.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="install-binary.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Installation</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installation.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Installing a Binary</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>