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
-~----------~----~----~----~------~----~------~--~---

Reply via email to