[chromium-dev] Re: Is it possible to create branches?

2009-06-17 Thread Evan Martin

As the team's git fanatic I feel it's my duty to tell you that git
would help with this, but I agree with the commenters who say that
your commits must be reviewed.

The way I use it is a single git branch manages the period between
start typing and think this is ready for review commit, while a
series of interrelated git branches track the larger arc of your
feature.  Then you can get each branch reviewed and committed
separately.

As the team's git fanatic I'll throw in that I think git is very
useful for managing an interrelated series of changes -- you can, for
example, iterate on feedback on change A while still working on
dependent change B.  But you also need to be decently comfortable with
git for that and learning is slow.

On Tue, Jun 16, 2009 at 9:35 PM, Daniel Cowxdaniel.c...@gmail.com wrote:

 What is the recommended procedure for working on long/big features?

 In the past, I've always created a separate branch and then done all
 my work there. I then do regular integrations from trunk into my
 branch to ensure that that my branch doesn't drift too far out of sync
 with the trunk (i.e. so as to minimize the amount of merge work I have
 to do when I'm ready to have my branch-specific changes reviewed and
 merged back into the trunk). However, being that chromium is hosted on
 a remote SVN server which I have no control over, what is the
 recommended way of doing dev?

 I'd really like to be able to do commits of my incremental work, but
 without a sep branch to fiddle around with, how can I accomplish this?

 All input and feedback welcome.

 Cheers,
 Daniel
 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Is it possible to create branches?

2009-06-17 Thread Mohamed Mansour
I learned git 3 days ago and I actually love it. It is very easy to create
branches and for your big feature you are trying to implement, it is better
to organize it into different milestones. Because in git/chromium world,
every branch can have at most one CL (Change List, Review). So if you define
your milestones for your big feature before hand, by describing what your
trying to do, you can then define how you can apply them to different
branches and incrementally review each branch.
Its easier for you to manage as well for the reviewers. Make sure you
present a proposal on what your trying to accomplish and attach it to a
tracking bug. For example, write up a detailed design document on what your
big feature will do and then request comments on the discuss mailing lists.
Its good to address the issues on why your big feature should be done in
chrome.  Don't put a lot of work implementing this before people think your
design and idea is ok for the chromium project.

-- Mohamed Mansour


On Wed, Jun 17, 2009 at 12:35 AM, Daniel Cowx daniel.c...@gmail.com wrote:


 What is the recommended procedure for working on long/big features?

 In the past, I've always created a separate branch and then done all
 my work there. I then do regular integrations from trunk into my
 branch to ensure that that my branch doesn't drift too far out of sync
 with the trunk (i.e. so as to minimize the amount of merge work I have
 to do when I'm ready to have my branch-specific changes reviewed and
 merged back into the trunk). However, being that chromium is hosted on
 a remote SVN server which I have no control over, what is the
 recommended way of doing dev?

 I'd really like to be able to do commits of my incremental work, but
 without a sep branch to fiddle around with, how can I accomplish this?

 All input and feedback welcome.

 Cheers,
 Daniel
 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Is it possible to create branches?

2009-06-17 Thread Scott Hess

Against that, I sometimes use git to manage breaking reviews up.  I'm
always a bit unhappy to get a review which includes one bit of complex
stuff that needs a bunch of back-and-forth, and another few bits of
uncontentious stuff which is easy to +1.  I'd rather see those
separately, so that the easy-to-review stuff can get committed and we
don't have to worry about accidental changes creeping into that code.
'git rebase -i' and keeping your local commits small and targeted
makes this pretty easy to do.

-scott


On Tue, Jun 16, 2009 at 11:07 PM, Evan Martine...@chromium.org wrote:

 As the team's git fanatic I feel it's my duty to tell you that git
 would help with this, but I agree with the commenters who say that
 your commits must be reviewed.

 The way I use it is a single git branch manages the period between
 start typing and think this is ready for review commit, while a
 series of interrelated git branches track the larger arc of your
 feature.  Then you can get each branch reviewed and committed
 separately.

 As the team's git fanatic I'll throw in that I think git is very
 useful for managing an interrelated series of changes -- you can, for
 example, iterate on feedback on change A while still working on
 dependent change B.  But you also need to be decently comfortable with
 git for that and learning is slow.

 On Tue, Jun 16, 2009 at 9:35 PM, Daniel Cowxdaniel.c...@gmail.com wrote:

 What is the recommended procedure for working on long/big features?

 In the past, I've always created a separate branch and then done all
 my work there. I then do regular integrations from trunk into my
 branch to ensure that that my branch doesn't drift too far out of sync
 with the trunk (i.e. so as to minimize the amount of merge work I have
 to do when I'm ready to have my branch-specific changes reviewed and
 merged back into the trunk). However, being that chromium is hosted on
 a remote SVN server which I have no control over, what is the
 recommended way of doing dev?

 I'd really like to be able to do commits of my incremental work, but
 without a sep branch to fiddle around with, how can I accomplish this?

 All input and feedback welcome.

 Cheers,
 Daniel
 


 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Is it possible to create branches?

2009-06-17 Thread Mark Larson (Google)
#1, make sure you have a bug open and a design document
(exampleshttp://dev.chromium.org/developers/design-documents).
Nothing's worse than going off on a long-lived feature expedition and then
returning to trunk to find out people don't want the feature or want some
other design.
#2, work on trunk (as pkasting outlined). Put on red slippers, click the
heels together and repeat There's no place like trunk, there's no place
like trunk... We've successfully developed many features behind command
line switches, some of which required major surgery. Working on trunk, your
code stays fresh, you get more feedback along the way, and you can have your
unit tests running on the builders.

A branch is really only useful if you need to collaborate with someone else
or _need_ your code to diverge from trunk.

--Mark

On Tue, Jun 16, 2009 at 21:35, Daniel Cowx daniel.c...@gmail.com wrote:


 What is the recommended procedure for working on long/big features?

 In the past, I've always created a separate branch and then done all
 my work there. I then do regular integrations from trunk into my
 branch to ensure that that my branch doesn't drift too far out of sync
 with the trunk (i.e. so as to minimize the amount of merge work I have
 to do when I'm ready to have my branch-specific changes reviewed and
 merged back into the trunk). However, being that chromium is hosted on
 a remote SVN server which I have no control over, what is the
 recommended way of doing dev?

 I'd really like to be able to do commits of my incremental work, but
 without a sep branch to fiddle around with, how can I accomplish this?

 All input and feedback welcome.

 Cheers,
 Daniel
 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Is it possible to create branches?

2009-06-16 Thread Nico Weber

Use git-svn? See http://code.google.com/p/chromium/wiki/UsingGit .

On Tue, Jun 16, 2009 at 9:35 PM, Daniel Cowxdaniel.c...@gmail.com wrote:

 What is the recommended procedure for working on long/big features?

 In the past, I've always created a separate branch and then done all
 my work there. I then do regular integrations from trunk into my
 branch to ensure that that my branch doesn't drift too far out of sync
 with the trunk (i.e. so as to minimize the amount of merge work I have
 to do when I'm ready to have my branch-specific changes reviewed and
 merged back into the trunk). However, being that chromium is hosted on
 a remote SVN server which I have no control over, what is the
 recommended way of doing dev?

 I'd really like to be able to do commits of my incremental work, but
 without a sep branch to fiddle around with, how can I accomplish this?

 All input and feedback welcome.

 Cheers,
 Daniel
 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Is it possible to create branches?

2009-06-16 Thread Jeremy Orlow
It might take a bit of getting used to, but git is a revision control tool
that allows you to create your own personal branches.  Many Chromium
developers use it for their daily work.  The way it interfaces with svn is a
bit clunky, but if you're not committing very often, it probably won't
matter much to you.

That said, I'm not sure if you're going to be able to do work like you have
on other projects.  We take code reviews very seriously, and it's pretty
hard to do code reviews except in small increments.  This is partially
because it's hard for a reviewer to understand all the elements of a large
change.  But it's also partially because a reviewers will have suggestions
for how you could do things better.  Even people who have been working on
Chromium from the beginning still go through reviews and often need to tweak
designs based on said reviews.

One way or another, you'll need to figure out how to get from point A to
point B in small increments.  Sometimes I like to prototype in a branch and
then re-implement it in the trunk as multiple smaller patches.  This seems
wasteful, but since you're not worrying about the details in the first phase
and you know exactly what you need to do and how to do it in the second
phase, it's actually not a bad way to go.  If, on the other hand, you
understand the path you want to take pretty well, then maybe you should just
do it in the trunk.  You can do it behind a run-time flag if necessary.

Out of curiosity, what are you planning on working on?

J

On Tue, Jun 16, 2009 at 9:35 PM, Daniel Cowx daniel.c...@gmail.com wrote:


 What is the recommended procedure for working on long/big features?

 In the past, I've always created a separate branch and then done all
 my work there. I then do regular integrations from trunk into my
 branch to ensure that that my branch doesn't drift too far out of sync
 with the trunk (i.e. so as to minimize the amount of merge work I have
 to do when I'm ready to have my branch-specific changes reviewed and
 merged back into the trunk). However, being that chromium is hosted on
 a remote SVN server which I have no control over, what is the
 recommended way of doing dev?

 I'd really like to be able to do commits of my incremental work, but
 without a sep branch to fiddle around with, how can I accomplish this?

 All input and feedback welcome.

 Cheers,
 Daniel
 


--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Is it possible to create branches?

2009-06-16 Thread Peter Kasting
On Tue, Jun 16, 2009 at 9:35 PM, Daniel Cowx daniel.c...@gmail.com wrote:

 What is the recommended procedure for working on long/big features?


Make an off-by-default switch and write your code under the switch, in the
trunk.

Branches eventually have to be integrated.  This is never as easy to review
as simply writing the change in the trunk to begin
with.  Plus code review along the way is very useful.

Perhaps you can locally do something without checking in just to make
a rough prototype (if you must), but I would generally avoid working
on a branch.

PK

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---