Author: mikhail.naganov
Date: Tue Feb 24 08:53:36 2009
New Revision: 1353
Added:
wiki/UsingGit.wiki
Log:
Created wiki page through web user interface.
Added: wiki/UsingGit.wiki
==============================================================================
--- (empty file)
+++ wiki/UsingGit.wiki Tue Feb 24 08:53:36 2009
@@ -0,0 +1,63 @@
+#summary This page describes how to use Git to work with V8 codebase.
+#labels svn,git
+
+= Pre-requisites =
+
+Tools that need to be installed in addition to SVN and developer tools:
+ * [http://www.kernel.org/pub/software/scm/git/docs/ git] ---Git itself
+ * [http://www.kernel.org/pub/software/scm/git/docs/git-svn.html git-svn]
---Git SVN bridge
+ * [http://neugierig.org/software/git/?r=git-cl git-cl] ---A gcl analog
for Git
+
+= Workflow =
+
+Several common scenarios are described below.
+
+== Checking out ==
+
+As git-svn imports commit history, checking out from BASE to HEAD will
take a long
+time. If you are not interested in the history of the project from the
very beginning,
+you can look up the current revision number and subtract, say, 100 from it.
+
+{{{
+~$ mkdir v8dev && cd v8dev
+v8dev$ git svn clone https://v8.googlecode.com/svn/branches/bleeding_edge
--username <your username> -r <revision from>:HEAD
+... this will ask for your SVN password ...
+}}}
+
+This will create a subdirectory named *bleeding_edge* and a git repository
in it. This repository will have a single branch named *master* with
project sources in it.
+
+== Setting up git-cl ==
+
+git-cl is needed to support reviewing with Rietveld. You must configure it
for the new
+repository you've created. git-cl assumes that project has a tree status
page, which isn't true in case of V8. To overcome it, a simple text file
can be created as a substitute, containing the phrase _tree is open_.
+
+{{{
+v8dev$ echo "tree is open" > v8-tree-status.html
+v8dev$ cd bleeding_edge
+bleeding_edge$ git cl config
+Rietveld server (host[:port]): codereview.chromium.org
+CC list: [email protected]
+Tree status URL: file://<path to your sandbox>/v8dev/v8-tree-status.html
+}}}
+
+== Implementing a simple change ==
+
+You need to make a dedicated git branch, hack there and upload from it.
You can have several changes developed in parallel each in its own branch.
To stay up to date you need to execute `git svn rebase`.
+
+{{{
+bleeding_edge$ git branch
+* master
+bleeding_edge$ git svn rebase
+... progress of checking out latest changes from SVN ...
+bleeding_edge$ git checkout -b my-new-change
+}}}
+
+Please consult git tutorials on how to make local commits, etc. So, having
all your changes committed locally in git, you are ready to upload a CL
into Rietveld.
+
+{{{
+bleeding_edge$ git cl upload -r <reviewer> --send-mail
+... git cl will invoke a editor to describe your change ...
+... and upload script will ask for e-mail and password ...
+}}}
+
+After making changes according to reviewer's comments and committing them
locally, repeat `git cl upload` to upload your changes to Rietveld. Having
an LGTM, you can commit your change. Prior to commit, it is recommended to
sync up with SVN in order to resolve potential conflicts. Executing `git cl
dcommit` will commit your CL.
\ No newline at end of file
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---