Re: [E-devel] Git, merges, and better work-flows

2013-10-06 Thread Daniel Juyung Seo
But that will create a remote branch which is not needed for others.
Or I can delete the remote branch after merging to master. Is that ok?

Daniel Juyung Seo (SeoZ)


On Sun, Oct 6, 2013 at 12:36 AM, Tom Hacohen t...@stosb.com wrote:

 Well. There's a way to avoid that: If you push to a remote branch before
 merging, there will be no tsunami. A mail will only be sent to the merge
 commit.


 On Sat, Oct 5, 2013 at 4:05 PM, Daniel Juyung Seo seojuyu...@gmail.com
 wrote:

  I thought the same as David Seikel :)
  That's why the commit tsunami happened.
 
  Anyhow, it's same as before except we now allow merge commit for some
  cases.
 
  Daniel Juyung Seo (SeoZ)
 
  On Sat, Oct 5, 2013 at 8:09 PM, Tom Hacohen t...@stosb.com wrote:
 
   No. The point is not to squash them, but have one cover-letter commit
  that
   holds them all. If you git log --first-parent you won't see all the
   commits, just the merge commit that describes the whole changeset.
  
  
   On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com
 wrote:
  
On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
seojuyu...@gmail.com wrote:
   
 On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
 tom.haco...@samsung.comwrote:

  On 04/10/13 15:40, Michael Blumenkrantz wrote:
   On Fri, 04 Oct 2013 15:18:46 +0100
   Tom Hacohen tom.haco...@samsung.com wrote:
  
   On 02/10/13 16:17, Tom Hacohen wrote:
   Hey guys,
  
   I would like to suggest a new work-flow. This work-flow will
   not be mandatory, but just an allowed alternative to the
   current commit to master approach.
  
   At the moment we do not allow merges, at all. This was to
   prevent
  people
   from littering the log with their inability to rebase (git
 pull
   --rebase) their local changes on top of the existing commits.
   This will still remain the same. I'd like to suggest using
   merges to our
  advantage.
  
   I suggest the following:
   For fixes, small features, and the like, do the same as you
 do
   now. Commit and push to master.
  
   For bigger features, rewrites, or any form of a few commits
   that are tied together by being part of the same set, do as
   follows (it's obviously simpler than that, I listed
 everything
   to over-simplify
  things):
   1. Create a branch (either local or remote) for your change.
   2. Work on that branch.
   3. When ready, instead of pushing to master:
   3. rebase over master (git fetch; git rebase origin/master).
   4. switch to master (git checkout master)
   6. git merge --no-ff your-feature-branch-name
   7. Describe your feature in the commit message.
   8. push to master (git push or git push origin master).
  
   I've done a few example commits on
  
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
  
   This work-flow lets us have linear history, while having
   feature-sets show as a single merge that can easily be
   reverted, provide a good description about a feature and the
   commits that introduced it and I find generally easier for
 the
   eye. There are also technical advantages, for example, if you
   run git log --first-parent you will only see the merge
   commits, cleaning the log from all the fluff involving a
   feature letting you just see the feature. Another advantage
 is
   that git
  bisect
   will not go inside the merged branch unless the issue was
   introduced
  there.
  
   Please feel free to inspect my repo, more specifically, the
  log:
  
   
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
  
   To see how it looks.
  
   Important note: commits on the merge branch should be treated
   as if
  they
   are on master, that is, don't use this as an excuse to make
  ugly
  commits
   with bad commit messages.
  
   Again: I'm not trying to make it mandatory, just to allow
 this
   sort of merges.
  
   Please let me know what you think.
  
   --
   Tom.
  
  
 
   
  
 
 --
   October Webinars: Code for Performance
   Free Intel webinars can help you accelerate application
   performance. Explore tips for MPI, OpenMP, advanced
 profiling,
   and more. Get the
  most from
   the latest Intel processors and coprocessors. See abstracts
 and
  register 
  
 
   
  
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
   ___
   enlightenment-devel mailing list
   enlightenment-devel@lists.sourceforge.net
  
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
  
  
   So, is this a go? May I write up some 

Re: [E-devel] Git, merges, and better work-flows

2013-10-06 Thread Tom Hacohen
Yeah, you can delete the remote branch after merging to master.

The trick here is that we don't send emails about commits in dev branches
and we don't send emails about commits that were merged into master from a
dev branch (that is, commits that have already existed in the repo at the
time of the push). Pushing to a dev branch first will thus prevent the
emails from being sent.

--
Tom.


On Sun, Oct 6, 2013 at 5:09 PM, Daniel Juyung Seo seojuyu...@gmail.comwrote:

 But that will create a remote branch which is not needed for others.
 Or I can delete the remote branch after merging to master. Is that ok?

 Daniel Juyung Seo (SeoZ)


 On Sun, Oct 6, 2013 at 12:36 AM, Tom Hacohen t...@stosb.com wrote:

  Well. There's a way to avoid that: If you push to a remote branch before
  merging, there will be no tsunami. A mail will only be sent to the merge
  commit.
 
 
  On Sat, Oct 5, 2013 at 4:05 PM, Daniel Juyung Seo seojuyu...@gmail.com
  wrote:
 
   I thought the same as David Seikel :)
   That's why the commit tsunami happened.
  
   Anyhow, it's same as before except we now allow merge commit for some
   cases.
  
   Daniel Juyung Seo (SeoZ)
  
   On Sat, Oct 5, 2013 at 8:09 PM, Tom Hacohen t...@stosb.com wrote:
  
No. The point is not to squash them, but have one cover-letter commit
   that
holds them all. If you git log --first-parent you won't see all the
commits, just the merge commit that describes the whole changeset.
   
   
On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com
  wrote:
   
 On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
 seojuyu...@gmail.com wrote:

  On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
  tom.haco...@samsung.comwrote:
 
   On 04/10/13 15:40, Michael Blumenkrantz wrote:
On Fri, 04 Oct 2013 15:18:46 +0100
Tom Hacohen tom.haco...@samsung.com wrote:
   
On 02/10/13 16:17, Tom Hacohen wrote:
Hey guys,
   
I would like to suggest a new work-flow. This work-flow
 will
not be mandatory, but just an allowed alternative to the
current commit to master approach.
   
At the moment we do not allow merges, at all. This was to
prevent
   people
from littering the log with their inability to rebase (git
  pull
--rebase) their local changes on top of the existing
 commits.
This will still remain the same. I'd like to suggest using
merges to our
   advantage.
   
I suggest the following:
For fixes, small features, and the like, do the same as you
  do
now. Commit and push to master.
   
For bigger features, rewrites, or any form of a few commits
that are tied together by being part of the same set, do as
follows (it's obviously simpler than that, I listed
  everything
to over-simplify
   things):
1. Create a branch (either local or remote) for your
 change.
2. Work on that branch.
3. When ready, instead of pushing to master:
3. rebase over master (git fetch; git rebase
 origin/master).
4. switch to master (git checkout master)
6. git merge --no-ff your-feature-branch-name
7. Describe your feature in the commit message.
8. push to master (git push or git push origin master).
   
I've done a few example commits on
   
https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
   
This work-flow lets us have linear history, while having
feature-sets show as a single merge that can easily be
reverted, provide a good description about a feature and
 the
commits that introduced it and I find generally easier for
  the
eye. There are also technical advantages, for example, if
 you
run git log --first-parent you will only see the merge
commits, cleaning the log from all the fluff involving a
feature letting you just see the feature. Another advantage
  is
that git
   bisect
will not go inside the merged branch unless the issue was
introduced
   there.
   
Please feel free to inspect my repo, more specifically, the
   log:
   

  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
   
To see how it looks.
   
Important note: commits on the merge branch should be
 treated
as if
   they
are on master, that is, don't use this as an excuse to make
   ugly
   commits
with bad commit messages.
   
Again: I'm not trying to make it mandatory, just to allow
  this
sort of merges.
   
Please let me know what you think.
   
--
Tom.
   
   
  

   
  
 
 --
October Webinars: Code for Performance
Free Intel webinars can help 

Re: [E-devel] Git, merges, and better work-flows

2013-10-06 Thread Bertrand Jacquin
On 2013-10-06 23:47, Tom Hacohen wrote:
 Yeah, you can delete the remote branch after merging to master.
 
 The trick here is that we don't send emails about commits in dev 
 branches
 and we don't send emails about commits that were merged into master 
 from a
 dev branch (that is, commits that have already existed in the repo at 
 the
 time of the push). Pushing to a dev branch first will thus prevent the
 emails from being sent.

Maybe this trick is handled by the multi mail hook, but post-receive 
will be constructed that way :

#1 push to own branch

 LAST COMMIT SHA1 
refs/heads/dev/XX/YY

#2 push the merge to master
common ancestor MERGE SHA1 refs/heads/master

So in the case of original seojuyung2

 
00141eb19a879c64d24e773d0dec6e6440ad6c51 refs/heads/dev/seojuyung2/YY
d9e81284369edad30f9225d86f1959c6901e87d8 
ad8a00cf343786497f12ef6efc1c1de38d363196 refs/heads/master

The second is still 60 commit difference, so I'm not so sure there will 
be no mail storm again. This will not happen is case multimail hook save 
somewhere what sha1 have already been announced, but I don't believe 
it's the case atm.

beber

 On Sun, Oct 6, 2013 at 5:09 PM, Daniel Juyung Seo 
 seojuyu...@gmail.comwrote:
 
 But that will create a remote branch which is not needed for others.
 Or I can delete the remote branch after merging to master. Is that ok?
 
 Daniel Juyung Seo (SeoZ)
 
 
 On Sun, Oct 6, 2013 at 12:36 AM, Tom Hacohen t...@stosb.com wrote:
 
  Well. There's a way to avoid that: If you push to a remote branch before
  merging, there will be no tsunami. A mail will only be sent to the merge
  commit.
 
 
  On Sat, Oct 5, 2013 at 4:05 PM, Daniel Juyung Seo seojuyu...@gmail.com
  wrote:
 
   I thought the same as David Seikel :)
   That's why the commit tsunami happened.
  
   Anyhow, it's same as before except we now allow merge commit for some
   cases.
  
   Daniel Juyung Seo (SeoZ)
  
   On Sat, Oct 5, 2013 at 8:09 PM, Tom Hacohen t...@stosb.com wrote:
  
No. The point is not to squash them, but have one cover-letter commit
   that
holds them all. If you git log --first-parent you won't see all the
commits, just the merge commit that describes the whole changeset.
   
   
On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com
  wrote:
   
 On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
 seojuyu...@gmail.com wrote:

  On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
  tom.haco...@samsung.comwrote:
 
   On 04/10/13 15:40, Michael Blumenkrantz wrote:
On Fri, 04 Oct 2013 15:18:46 +0100
Tom Hacohen tom.haco...@samsung.com wrote:
   
On 02/10/13 16:17, Tom Hacohen wrote:
Hey guys,
   
I would like to suggest a new work-flow. This work-flow
 will
not be mandatory, but just an allowed alternative to the
current commit to master approach.
   
At the moment we do not allow merges, at all. This was to
prevent
   people
from littering the log with their inability to rebase (git
  pull
--rebase) their local changes on top of the existing
 commits.
This will still remain the same. I'd like to suggest using
merges to our
   advantage.
   
I suggest the following:
For fixes, small features, and the like, do the same as you
  do
now. Commit and push to master.
   
For bigger features, rewrites, or any form of a few commits
that are tied together by being part of the same set, do as
follows (it's obviously simpler than that, I listed
  everything
to over-simplify
   things):
1. Create a branch (either local or remote) for your
 change.
2. Work on that branch.
3. When ready, instead of pushing to master:
3. rebase over master (git fetch; git rebase
 origin/master).
4. switch to master (git checkout master)
6. git merge --no-ff your-feature-branch-name
7. Describe your feature in the commit message.
8. push to master (git push or git push origin master).
   
I've done a few example commits on
   
https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
   
This work-flow lets us have linear history, while having
feature-sets show as a single merge that can easily be
reverted, provide a good description about a feature and
 the
commits that introduced it and I find generally easier for
  the
eye. There are also technical advantages, for example, if
 you
run git log --first-parent you will only see the merge
commits, cleaning the log from all the fluff involving a
feature letting you just see the feature. Another advantage
  is
that git
   bisect
will not go inside the merged branch unless the issue was
introduced
   

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread Daniel Juyung Seo
On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen tom.haco...@samsung.comwrote:

 On 04/10/13 15:40, Michael Blumenkrantz wrote:
  On Fri, 04 Oct 2013 15:18:46 +0100
  Tom Hacohen tom.haco...@samsung.com wrote:
 
  On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will not be
  mandatory, but just an allowed alternative to the current commit to
  master approach.
 
  At the moment we do not allow merges, at all. This was to prevent
 people
  from littering the log with their inability to rebase (git pull
  --rebase) their local changes on top of the existing commits. This will
  still remain the same. I'd like to suggest using merges to our
 advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do now.
  Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits that are
  tied together by being part of the same set, do as follows (it's
  obviously simpler than that, I listed everything to over-simplify
 things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having feature-sets
  show as a single merge that can easily be reverted, provide a good
  description about a feature and the commits that introduced it and I
  find generally easier for the eye. There are also technical advantages,
  for example, if you run git log --first-parent you will only see the
  merge commits, cleaning the log from all the fluff involving a feature
  letting you just see the feature. Another advantage is that git
 bisect
  will not go inside the merged branch unless the issue was introduced
 there.
 
  Please feel free to inspect my repo, more specifically, the log:
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated as if
 they
  are on master, that is, don't use this as an excuse to make ugly
 commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this sort of
  merges.
 
  Please let me know what you think.
 
  --
  Tom.
 
 
 --
  October Webinars: Code for Performance
  Free Intel webinars can help you accelerate application performance.
  Explore tips for MPI, OpenMP, advanced profiling, and more. Get the
 most from
  the latest Intel processors and coprocessors. See abstracts and
 register 
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 
  So, is this a go? May I write up some documentation about it and start
  doing it?
 
  --
  Tom.
 
 
  I think you probably could have started documenting it at any point to
 help those who are interested.
 

 I already documented enough to explain the idea, and a more detailed
 explanation is available at the link Peter gave.

 I will only format it and actually put it in our documentation if
 actually agreed upon. Would be a waste of time otherwise.


Well, your explanation in your first email was quite enough for me.
I just made a merge branch commit what you described above.
https://git.enlightenment.org/core/elementary.git/commit/?id=ad8a00cf343786497f12ef6efc1c1de38d363196

It was quite easy and clear to me.
Thanks for the suggestion.

Daniel Juyung Seo (SeoZ)

--
 Tom.


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See 

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread David Seikel
On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
seojuyu...@gmail.com wrote:

 On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
 tom.haco...@samsung.comwrote:
 
  On 04/10/13 15:40, Michael Blumenkrantz wrote:
   On Fri, 04 Oct 2013 15:18:46 +0100
   Tom Hacohen tom.haco...@samsung.com wrote:
  
   On 02/10/13 16:17, Tom Hacohen wrote:
   Hey guys,
  
   I would like to suggest a new work-flow. This work-flow will
   not be mandatory, but just an allowed alternative to the
   current commit to master approach.
  
   At the moment we do not allow merges, at all. This was to
   prevent
  people
   from littering the log with their inability to rebase (git pull
   --rebase) their local changes on top of the existing commits.
   This will still remain the same. I'd like to suggest using
   merges to our
  advantage.
  
   I suggest the following:
   For fixes, small features, and the like, do the same as you do
   now. Commit and push to master.
  
   For bigger features, rewrites, or any form of a few commits
   that are tied together by being part of the same set, do as
   follows (it's obviously simpler than that, I listed everything
   to over-simplify
  things):
   1. Create a branch (either local or remote) for your change.
   2. Work on that branch.
   3. When ready, instead of pushing to master:
   3. rebase over master (git fetch; git rebase origin/master).
   4. switch to master (git checkout master)
   6. git merge --no-ff your-feature-branch-name
   7. Describe your feature in the commit message.
   8. push to master (git push or git push origin master).
  
   I've done a few example commits on
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
  
   This work-flow lets us have linear history, while having
   feature-sets show as a single merge that can easily be
   reverted, provide a good description about a feature and the
   commits that introduced it and I find generally easier for the
   eye. There are also technical advantages, for example, if you
   run git log --first-parent you will only see the merge
   commits, cleaning the log from all the fluff involving a
   feature letting you just see the feature. Another advantage is
   that git
  bisect
   will not go inside the merged branch unless the issue was
   introduced
  there.
  
   Please feel free to inspect my repo, more specifically, the log:
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
  
   To see how it looks.
  
   Important note: commits on the merge branch should be treated
   as if
  they
   are on master, that is, don't use this as an excuse to make ugly
  commits
   with bad commit messages.
  
   Again: I'm not trying to make it mandatory, just to allow this
   sort of merges.
  
   Please let me know what you think.
  
   --
   Tom.
  
  
  --
   October Webinars: Code for Performance
   Free Intel webinars can help you accelerate application
   performance. Explore tips for MPI, OpenMP, advanced profiling,
   and more. Get the
  most from
   the latest Intel processors and coprocessors. See abstracts and
  register 
  
  http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
   ___
   enlightenment-devel mailing list
   enlightenment-devel@lists.sourceforge.net
   https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
  
  
   So, is this a go? May I write up some documentation about it
   and start doing it?
  
   --
   Tom.
  
  
   I think you probably could have started documenting it at any
   point to
  help those who are interested.
  
 
  I already documented enough to explain the idea, and a more detailed
  explanation is available at the link Peter gave.
 
  I will only format it and actually put it in our documentation if
  actually agreed upon. Would be a waste of time otherwise.
 
 
 Well, your explanation in your first email was quite enough for me.
 I just made a merge branch commit what you described above.
 https://git.enlightenment.org/core/elementary.git/commit/?id=ad8a00cf343786497f12ef6efc1c1de38d363196
 
 It was quite easy and clear to me.
 Thanks for the suggestion.

I thought the object of this exercise was to squash them down to a
single commit?  So why was there dozens of commit emails?

-- 
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.


signature.asc
Description: PGP signature
--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk___

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread Tom Hacohen
No. The point is not to squash them, but have one cover-letter commit that
holds them all. If you git log --first-parent you won't see all the
commits, just the merge commit that describes the whole changeset.


On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com wrote:

 On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
 seojuyu...@gmail.com wrote:

  On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
  tom.haco...@samsung.comwrote:
 
   On 04/10/13 15:40, Michael Blumenkrantz wrote:
On Fri, 04 Oct 2013 15:18:46 +0100
Tom Hacohen tom.haco...@samsung.com wrote:
   
On 02/10/13 16:17, Tom Hacohen wrote:
Hey guys,
   
I would like to suggest a new work-flow. This work-flow will
not be mandatory, but just an allowed alternative to the
current commit to master approach.
   
At the moment we do not allow merges, at all. This was to
prevent
   people
from littering the log with their inability to rebase (git pull
--rebase) their local changes on top of the existing commits.
This will still remain the same. I'd like to suggest using
merges to our
   advantage.
   
I suggest the following:
For fixes, small features, and the like, do the same as you do
now. Commit and push to master.
   
For bigger features, rewrites, or any form of a few commits
that are tied together by being part of the same set, do as
follows (it's obviously simpler than that, I listed everything
to over-simplify
   things):
1. Create a branch (either local or remote) for your change.
2. Work on that branch.
3. When ready, instead of pushing to master:
3. rebase over master (git fetch; git rebase origin/master).
4. switch to master (git checkout master)
6. git merge --no-ff your-feature-branch-name
7. Describe your feature in the commit message.
8. push to master (git push or git push origin master).
   
I've done a few example commits on
https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
   
This work-flow lets us have linear history, while having
feature-sets show as a single merge that can easily be
reverted, provide a good description about a feature and the
commits that introduced it and I find generally easier for the
eye. There are also technical advantages, for example, if you
run git log --first-parent you will only see the merge
commits, cleaning the log from all the fluff involving a
feature letting you just see the feature. Another advantage is
that git
   bisect
will not go inside the merged branch unless the issue was
introduced
   there.
   
Please feel free to inspect my repo, more specifically, the log:
   
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
   
To see how it looks.
   
Important note: commits on the merge branch should be treated
as if
   they
are on master, that is, don't use this as an excuse to make ugly
   commits
with bad commit messages.
   
Again: I'm not trying to make it mandatory, just to allow this
sort of merges.
   
Please let me know what you think.
   
--
Tom.
   
   
  
 --
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application
performance. Explore tips for MPI, OpenMP, advanced profiling,
and more. Get the
   most from
the latest Intel processors and coprocessors. See abstracts and
   register 
   
  
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
   
   
So, is this a go? May I write up some documentation about it
and start doing it?
   
--
Tom.
   
   
I think you probably could have started documenting it at any
point to
   help those who are interested.
   
  
   I already documented enough to explain the idea, and a more detailed
   explanation is available at the link Peter gave.
  
   I will only format it and actually put it in our documentation if
   actually agreed upon. Would be a waste of time otherwise.
  
  
  Well, your explanation in your first email was quite enough for me.
  I just made a merge branch commit what you described above.
 
 https://git.enlightenment.org/core/elementary.git/commit/?id=ad8a00cf343786497f12ef6efc1c1de38d363196
 
  It was quite easy and clear to me.
  Thanks for the suggestion.

 I thought the object of this exercise was to squash them down to a
 single commit?  So why was there dozens of commit emails?

 --
 A big old stinking pile of genius that no one wants
 coz there are too many silver coated monkeys in the world.


 --
 October 

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread Tom Hacohen
Exactly. Awesome. :)


On Sat, Oct 5, 2013 at 9:58 AM, Daniel Juyung Seo seojuyu...@gmail.comwrote:

 On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen tom.haco...@samsung.com
 wrote:

  On 04/10/13 15:40, Michael Blumenkrantz wrote:
   On Fri, 04 Oct 2013 15:18:46 +0100
   Tom Hacohen tom.haco...@samsung.com wrote:
  
   On 02/10/13 16:17, Tom Hacohen wrote:
   Hey guys,
  
   I would like to suggest a new work-flow. This work-flow will not be
   mandatory, but just an allowed alternative to the current commit to
   master approach.
  
   At the moment we do not allow merges, at all. This was to prevent
  people
   from littering the log with their inability to rebase (git pull
   --rebase) their local changes on top of the existing commits. This
 will
   still remain the same. I'd like to suggest using merges to our
  advantage.
  
   I suggest the following:
   For fixes, small features, and the like, do the same as you do now.
   Commit and push to master.
  
   For bigger features, rewrites, or any form of a few commits that are
   tied together by being part of the same set, do as follows (it's
   obviously simpler than that, I listed everything to over-simplify
  things):
   1. Create a branch (either local or remote) for your change.
   2. Work on that branch.
   3. When ready, instead of pushing to master:
   3. rebase over master (git fetch; git rebase origin/master).
   4. switch to master (git checkout master)
   6. git merge --no-ff your-feature-branch-name
   7. Describe your feature in the commit message.
   8. push to master (git push or git push origin master).
  
   I've done a few example commits on
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
  
   This work-flow lets us have linear history, while having feature-sets
   show as a single merge that can easily be reverted, provide a good
   description about a feature and the commits that introduced it and I
   find generally easier for the eye. There are also technical
 advantages,
   for example, if you run git log --first-parent you will only see
 the
   merge commits, cleaning the log from all the fluff involving a
 feature
   letting you just see the feature. Another advantage is that git
  bisect
   will not go inside the merged branch unless the issue was introduced
  there.
  
   Please feel free to inspect my repo, more specifically, the log:
  
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
  
   To see how it looks.
  
   Important note: commits on the merge branch should be treated as if
  they
   are on master, that is, don't use this as an excuse to make ugly
  commits
   with bad commit messages.
  
   Again: I'm not trying to make it mandatory, just to allow this sort
 of
   merges.
  
   Please let me know what you think.
  
   --
   Tom.
  
  
 
 --
   October Webinars: Code for Performance
   Free Intel webinars can help you accelerate application performance.
   Explore tips for MPI, OpenMP, advanced profiling, and more. Get the
  most from
   the latest Intel processors and coprocessors. See abstracts and
  register 
  
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
   ___
   enlightenment-devel mailing list
   enlightenment-devel@lists.sourceforge.net
   https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
  
  
   So, is this a go? May I write up some documentation about it and
 start
   doing it?
  
   --
   Tom.
  
  
   I think you probably could have started documenting it at any point to
  help those who are interested.
  
 
  I already documented enough to explain the idea, and a more detailed
  explanation is available at the link Peter gave.
 
  I will only format it and actually put it in our documentation if
  actually agreed upon. Would be a waste of time otherwise.
 
 
 Well, your explanation in your first email was quite enough for me.
 I just made a merge branch commit what you described above.

 https://git.enlightenment.org/core/elementary.git/commit/?id=ad8a00cf343786497f12ef6efc1c1de38d363196

 It was quite easy and clear to me.
 Thanks for the suggestion.

 Daniel Juyung Seo (SeoZ)

 --
  Tom.
 
 
 
 --
  October Webinars: Code for Performance
  Free Intel webinars can help you accelerate application performance.
  Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
  from
  the latest Intel processors and coprocessors. See abstracts and register
 
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 

 

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread Daniel Juyung Seo
I thought the same as David Seikel :)
That's why the commit tsunami happened.

Anyhow, it's same as before except we now allow merge commit for some cases.

Daniel Juyung Seo (SeoZ)

On Sat, Oct 5, 2013 at 8:09 PM, Tom Hacohen t...@stosb.com wrote:

 No. The point is not to squash them, but have one cover-letter commit that
 holds them all. If you git log --first-parent you won't see all the
 commits, just the merge commit that describes the whole changeset.


 On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com wrote:

  On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
  seojuyu...@gmail.com wrote:
 
   On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
   tom.haco...@samsung.comwrote:
  
On 04/10/13 15:40, Michael Blumenkrantz wrote:
 On Fri, 04 Oct 2013 15:18:46 +0100
 Tom Hacohen tom.haco...@samsung.com wrote:

 On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will
 not be mandatory, but just an allowed alternative to the
 current commit to master approach.

 At the moment we do not allow merges, at all. This was to
 prevent
people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits.
 This will still remain the same. I'd like to suggest using
 merges to our
advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do
 now. Commit and push to master.

 For bigger features, rewrites, or any form of a few commits
 that are tied together by being part of the same set, do as
 follows (it's obviously simpler than that, I listed everything
 to over-simplify
things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on

 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having
 feature-sets show as a single merge that can easily be
 reverted, provide a good description about a feature and the
 commits that introduced it and I find generally easier for the
 eye. There are also technical advantages, for example, if you
 run git log --first-parent you will only see the merge
 commits, cleaning the log from all the fluff involving a
 feature letting you just see the feature. Another advantage is
 that git
bisect
 will not go inside the merged branch unless the issue was
 introduced
there.

 Please feel free to inspect my repo, more specifically, the log:

  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated
 as if
they
 are on master, that is, don't use this as an excuse to make ugly
commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this
 sort of merges.

 Please let me know what you think.

 --
 Tom.


   
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application
 performance. Explore tips for MPI, OpenMP, advanced profiling,
 and more. Get the
most from
 the latest Intel processors and coprocessors. See abstracts and
register 

   
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


 So, is this a go? May I write up some documentation about it
 and start doing it?

 --
 Tom.


 I think you probably could have started documenting it at any
 point to
help those who are interested.

   
I already documented enough to explain the idea, and a more detailed
explanation is available at the link Peter gave.
   
I will only format it and actually put it in our documentation if
actually agreed upon. Would be a waste of time otherwise.
   
   
   Well, your explanation in your first email was quite enough for me.
   I just made a merge branch commit what you described above.
  
 
 https://git.enlightenment.org/core/elementary.git/commit/?id=ad8a00cf343786497f12ef6efc1c1de38d363196
  
   It was quite easy and 

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread Tom Hacohen
*about the merge commit.


On Sat, Oct 5, 2013 at 4:36 PM, Tom Hacohen t...@stosb.com wrote:

 Well. There's a way to avoid that: If you push to a remote branch before
 merging, there will be no tsunami. A mail will only be sent to the merge
 commit.


 On Sat, Oct 5, 2013 at 4:05 PM, Daniel Juyung Seo seojuyu...@gmail.comwrote:

 I thought the same as David Seikel :)
 That's why the commit tsunami happened.

 Anyhow, it's same as before except we now allow merge commit for some
 cases.

 Daniel Juyung Seo (SeoZ)

 On Sat, Oct 5, 2013 at 8:09 PM, Tom Hacohen t...@stosb.com wrote:

  No. The point is not to squash them, but have one cover-letter commit
 that
  holds them all. If you git log --first-parent you won't see all the
  commits, just the merge commit that describes the whole changeset.
 
 
  On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com
 wrote:
 
   On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
   seojuyu...@gmail.com wrote:
  
On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
tom.haco...@samsung.comwrote:
   
 On 04/10/13 15:40, Michael Blumenkrantz wrote:
  On Fri, 04 Oct 2013 15:18:46 +0100
  Tom Hacohen tom.haco...@samsung.com wrote:
 
  On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will
  not be mandatory, but just an allowed alternative to the
  current commit to master approach.
 
  At the moment we do not allow merges, at all. This was to
  prevent
 people
  from littering the log with their inability to rebase (git
 pull
  --rebase) their local changes on top of the existing commits.
  This will still remain the same. I'd like to suggest using
  merges to our
 advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do
  now. Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits
  that are tied together by being part of the same set, do as
  follows (it's obviously simpler than that, I listed everything
  to over-simplify
 things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
 
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having
  feature-sets show as a single merge that can easily be
  reverted, provide a good description about a feature and the
  commits that introduced it and I find generally easier for the
  eye. There are also technical advantages, for example, if you
  run git log --first-parent you will only see the merge
  commits, cleaning the log from all the fluff involving a
  feature letting you just see the feature. Another advantage is
  that git
 bisect
  will not go inside the merged branch unless the issue was
  introduced
 there.
 
  Please feel free to inspect my repo, more specifically, the
 log:
 
  
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated
  as if
 they
  are on master, that is, don't use this as an excuse to make
 ugly
 commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this
  sort of merges.
 
  Please let me know what you think.
 
  --
  Tom.
 
 

  
 
 --
  October Webinars: Code for Performance
  Free Intel webinars can help you accelerate application
  performance. Explore tips for MPI, OpenMP, advanced profiling,
  and more. Get the
 most from
  the latest Intel processors and coprocessors. See abstracts
 and
 register 
 

  
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
 
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 
  So, is this a go? May I write up some documentation about it
  and start doing it?
 
  --
  Tom.
 
 
  I think you probably could have started documenting it at any
  point to
 help those who are interested.
 

 I already documented enough to explain the idea, and a more
 

Re: [E-devel] Git, merges, and better work-flows

2013-10-05 Thread Tom Hacohen
Well. There's a way to avoid that: If you push to a remote branch before
merging, there will be no tsunami. A mail will only be sent to the merge
commit.


On Sat, Oct 5, 2013 at 4:05 PM, Daniel Juyung Seo seojuyu...@gmail.comwrote:

 I thought the same as David Seikel :)
 That's why the commit tsunami happened.

 Anyhow, it's same as before except we now allow merge commit for some
 cases.

 Daniel Juyung Seo (SeoZ)

 On Sat, Oct 5, 2013 at 8:09 PM, Tom Hacohen t...@stosb.com wrote:

  No. The point is not to squash them, but have one cover-letter commit
 that
  holds them all. If you git log --first-parent you won't see all the
  commits, just the merge commit that describes the whole changeset.
 
 
  On Sat, Oct 5, 2013 at 10:36 AM, David Seikel onef...@gmail.com wrote:
 
   On Sat, 5 Oct 2013 17:58:17 +0900 Daniel Juyung Seo
   seojuyu...@gmail.com wrote:
  
On Fri, Oct 4, 2013 at 11:48 PM, Tom Hacohen
tom.haco...@samsung.comwrote:
   
 On 04/10/13 15:40, Michael Blumenkrantz wrote:
  On Fri, 04 Oct 2013 15:18:46 +0100
  Tom Hacohen tom.haco...@samsung.com wrote:
 
  On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will
  not be mandatory, but just an allowed alternative to the
  current commit to master approach.
 
  At the moment we do not allow merges, at all. This was to
  prevent
 people
  from littering the log with their inability to rebase (git pull
  --rebase) their local changes on top of the existing commits.
  This will still remain the same. I'd like to suggest using
  merges to our
 advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do
  now. Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits
  that are tied together by being part of the same set, do as
  follows (it's obviously simpler than that, I listed everything
  to over-simplify
 things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
 
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having
  feature-sets show as a single merge that can easily be
  reverted, provide a good description about a feature and the
  commits that introduced it and I find generally easier for the
  eye. There are also technical advantages, for example, if you
  run git log --first-parent you will only see the merge
  commits, cleaning the log from all the fluff involving a
  feature letting you just see the feature. Another advantage is
  that git
 bisect
  will not go inside the merged branch unless the issue was
  introduced
 there.
 
  Please feel free to inspect my repo, more specifically, the
 log:
 
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated
  as if
 they
  are on master, that is, don't use this as an excuse to make
 ugly
 commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this
  sort of merges.
 
  Please let me know what you think.
 
  --
  Tom.
 
 

  
 
 --
  October Webinars: Code for Performance
  Free Intel webinars can help you accelerate application
  performance. Explore tips for MPI, OpenMP, advanced profiling,
  and more. Get the
 most from
  the latest Intel processors and coprocessors. See abstracts and
 register 
 

  
 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
 
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 
  So, is this a go? May I write up some documentation about it
  and start doing it?
 
  --
  Tom.
 
 
  I think you probably could have started documenting it at any
  point to
 help those who are interested.
 

 I already documented enough to explain the idea, and a more
 detailed
 explanation is available at the link Peter gave.

 I will only format it and actually 

Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Bertrand Jacquin
 steps 3, 4, 5, 6, 8... are an incantation. to be done in that order. 
 there is
 --no-ff... and he series.. its a DEFINITE incantation. read up on git 
 as a
 leaky abstraction. it is very much one. it forces peole to learn a 
 series of
 incantations/steps all the time as opposed to just having a single do 
 X where
 X is always the same series of steps. why do it by hand. why have to 
 LEARN by
 heart and then of course get it wrong at times

Officially, raster is now a high level manager !

Theses incantation are quite straight forward when you use git daily. 
Not at the first use, but become fast essential.

My 2 cents

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread The Rasterman
On Fri, 04 Oct 2013 11:42:35 +0200 Bertrand Jacquin be...@meleeweb.net said:

  steps 3, 4, 5, 6, 8... are an incantation. to be done in that order. 
  there is
  --no-ff... and he series.. its a DEFINITE incantation. read up on git 
  as a
  leaky abstraction. it is very much one. it forces peole to learn a 
  series of
  incantations/steps all the time as opposed to just having a single do 
  X where
  X is always the same series of steps. why do it by hand. why have to 
  LEARN by
  heart and then of course get it wrong at times
 
 Officially, raster is now a high level manager !
 
 Theses incantation are quite straight forward when you use git daily. 
 Not at the first use, but become fast essential.

i use git every day.. but i dont go making private branches and merging them.
even then, take a look at my aliases and scripts dir. i fail to understand how
many people survive doing everything manually by hand. i see it all around me.
they do the full command like:

  ps -ef | grep X

when i do:

  psg X

why? i get tired of memorizing N steps or magic incantations. i do NOT do:

  ./autogen.sh 
  make 
  sudo make install

i do:

  cmi

i never do:

  make 
  sudo make install

i do:

  mi

why? i can't stand having to memorize a tonneof obscure incantations that make
little sense outside of the leaky abstraction that is git:

http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/
https://news.ycombinator.com/item?id=3891598

you may love doing it all by hand and find great pleasure in twisting your
brain to work and think like gits internals do, but i do not. i want to
perform a simple task and git turns it into a job of remembering a magic
incantation. i keep now having to build scripts that wrap git stuff up so i
dont have to do N steps and maybe forget one.

the same people who say omg git is so awesome! it has git bisect! svn sucks!
it is the worst thing. it doesnt have bisect have a set of standards that
think doing other SIMPLE stuff that svn does in a single cmd is ok to break
into a dozen steps in git with a bunch of cmdline opts u have to keep looking
up, and if in svn i had to write a small script to do a bisect (which was
perfectly possible too) then svn insta-sucks. but having to wrap up git or
memorize a vast series of steps for everything u need to do in git is perfectly
fine and great!

git is a poor tool. it's interface is poor. it does some cool stuff - but as a
tool it is poor. if you want people to follow conventions/procedures, don't
make them have to read your powerpoint on them and study them and memorize the
document/process. (and the people here know what i'm referring to). make the
TOOL doe the thing for you obviously and simply. for git that would normally
mean patching it (not as easy), but a simple wrapper does the job. don't define
a document to describe a process - encapsulate it in a simple tool (script).

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Tom Hacohen
On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit to
 master approach.

 At the moment we do not allow merges, at all. This was to prevent people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits. This will
 still remain the same. I'd like to suggest using merges to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that are
 tied together by being part of the same set, do as follows (it's
 obviously simpler than that, I listed everything to over-simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-sets
 show as a single merge that can easily be reverted, provide a good
 description about a feature and the commits that introduced it and I
 find generally easier for the eye. There are also technical advantages,
 for example, if you run git log --first-parent you will only see the
 merge commits, cleaning the log from all the fluff involving a feature
 letting you just see the feature. Another advantage is that git bisect
 will not go inside the merged branch unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if they
 are on master, that is, don't use this as an excuse to make ugly commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort of
 merges.

 Please let me know what you think.

 --
 Tom.

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


So, is this a go? May I write up some documentation about it and start 
doing it?

--
Tom.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Michael Blumenkrantz
On Fri, 04 Oct 2013 15:18:46 +0100
Tom Hacohen tom.haco...@samsung.com wrote:

 On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will not be
  mandatory, but just an allowed alternative to the current commit to
  master approach.
 
  At the moment we do not allow merges, at all. This was to prevent people
  from littering the log with their inability to rebase (git pull
  --rebase) their local changes on top of the existing commits. This will
  still remain the same. I'd like to suggest using merges to our advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do now.
  Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits that are
  tied together by being part of the same set, do as follows (it's
  obviously simpler than that, I listed everything to over-simplify things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having feature-sets
  show as a single merge that can easily be reverted, provide a good
  description about a feature and the commits that introduced it and I
  find generally easier for the eye. There are also technical advantages,
  for example, if you run git log --first-parent you will only see the
  merge commits, cleaning the log from all the fluff involving a feature
  letting you just see the feature. Another advantage is that git bisect
  will not go inside the merged branch unless the issue was introduced there.
 
  Please feel free to inspect my repo, more specifically, the log:
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated as if they
  are on master, that is, don't use this as an excuse to make ugly commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this sort of
  merges.
 
  Please let me know what you think.
 
  --
  Tom.
 
  --
  October Webinars: Code for Performance
  Free Intel webinars can help you accelerate application performance.
  Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most 
  from
  the latest Intel processors and coprocessors. See abstracts and register 
  http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
  ___
  enlightenment-devel mailing list
  enlightenment-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 
 So, is this a go? May I write up some documentation about it and start 
 doing it?
 
 --
 Tom.


I think you probably could have started documenting it at any point to help 
those who are interested.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Tom Hacohen
On 04/10/13 15:40, Michael Blumenkrantz wrote:
 On Fri, 04 Oct 2013 15:18:46 +0100
 Tom Hacohen tom.haco...@samsung.com wrote:

 On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit to
 master approach.

 At the moment we do not allow merges, at all. This was to prevent people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits. This will
 still remain the same. I'd like to suggest using merges to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that are
 tied together by being part of the same set, do as follows (it's
 obviously simpler than that, I listed everything to over-simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-sets
 show as a single merge that can easily be reverted, provide a good
 description about a feature and the commits that introduced it and I
 find generally easier for the eye. There are also technical advantages,
 for example, if you run git log --first-parent you will only see the
 merge commits, cleaning the log from all the fluff involving a feature
 letting you just see the feature. Another advantage is that git bisect
 will not go inside the merged branch unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if they
 are on master, that is, don't use this as an excuse to make ugly commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort of
 merges.

 Please let me know what you think.

 --
 Tom.

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most 
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


 So, is this a go? May I write up some documentation about it and start
 doing it?

 --
 Tom.


 I think you probably could have started documenting it at any point to help 
 those who are interested.


I already documented enough to explain the idea, and a more detailed 
explanation is available at the link Peter gave.

I will only format it and actually put it in our documentation if 
actually agreed upon. Would be a waste of time otherwise.

--
Tom.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Jérémy Zurcher
On Friday 04 October 2013  15:18, Tom Hacohen wrote :
 
 
 So, is this a go? May I write up some documentation about it and start 
 doing it?
 
 --
 Tom.

for me it's a +1 go

in case that's part of your plan,
I've added an 'eo2: ' prefix to the commits in devs/jeyzu/eo2-old.
I can still fix the committer name to be the same as author


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Tom Hacohen
On 04/10/13 16:05, Jérémy Zurcher wrote:
 On Friday 04 October 2013  15:18, Tom Hacohen wrote :


 So, is this a go? May I write up some documentation about it and start
 doing it?

 --
 Tom.

 for me it's a +1 go

 in case that's part of your plan,
 I've added an 'eo2: ' prefix to the commits in devs/jeyzu/eo2-old.
 I can still fix the committer name to be the same as author

Committer name != Author name.

Both should be correct according to the reality. :)

Yes, I do plan on using it for eo2 (among other things).

--
Tom.



--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Jérémy Zurcher
On Friday 04 October 2013  15:59, Tom Hacohen wrote :
 On 04/10/13 16:05, Jérémy Zurcher wrote:
  On Friday 04 October 2013  15:18, Tom Hacohen wrote :
 
 
  So, is this a go? May I write up some documentation about it and start
  doing it?
 
  --
  Tom.
 
  for me it's a +1 go
 
  in case that's part of your plan,
  I've added an 'eo2: ' prefix to the commits in devs/jeyzu/eo2-old.
  I can still fix the committer name to be the same as author
 
 Committer name != Author name.
 
 Both should be correct according to the reality. :)
what is the reality?
Cedric and you committed patches in eo2,
but I'm the only committer in eo2-old,
I don't know 
 
 Yes, I do plan on using it for eo2 (among other things).
 
 --
 Tom.
 
 
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--- Hell'O from Yverdoom

Jérémy (jeyzu)

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread Lucas De Marchi
On Fri, Oct 4, 2013 at 7:05 AM, Carsten Haitzler ras...@rasterman.com wrote:
 On Fri, 04 Oct 2013 11:42:35 +0200 Bertrand Jacquin be...@meleeweb.net said:

  steps 3, 4, 5, 6, 8... are an incantation. to be done in that order.
  there is
  --no-ff... and he series.. its a DEFINITE incantation. read up on git
  as a
  leaky abstraction. it is very much one. it forces peole to learn a
  series of
  incantations/steps all the time as opposed to just having a single do
  X where
  X is always the same series of steps. why do it by hand. why have to
  LEARN by
  heart and then of course get it wrong at times

 Officially, raster is now a high level manager !

 Theses incantation are quite straight forward when you use git daily.
 Not at the first use, but become fast essential.

 i use git every day.. but i dont go making private branches and merging them.
 even then, take a look at my aliases and scripts dir. i fail to understand how
 many people survive doing everything manually by hand. i see it all around me.
 they do the full command like:

   ps -ef | grep X

 when i do:

   psg X

 why? i get tired of memorizing N steps or magic incantations. i do NOT do:

   ./autogen.sh 
   make 
   sudo make install

 i do:

   cmi

 i never do:

   make 
   sudo make install

 i do:

   mi


why not use  names like a, b, c, d, e...? I guess it would be easier
for you to remember all the aliases.



 why? i can't stand having to memorize a tonneof obscure incantations that make
 little sense outside of the leaky abstraction that is git:

 http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/
 https://news.ycombinator.com/item?id=3891598

 you may love doing it all by hand and find great pleasure in twisting your
 brain to work and think like gits internals do, but i do not. i want to
 perform a simple task and git turns it into a job of remembering a magic
 incantation. i keep now having to build scripts that wrap git stuff up so i
 dont have to do N steps and maybe forget one.

 the same people who say omg git is so awesome! it has git bisect! svn sucks!
 it is the worst thing. it doesnt have bisect have a set of standards that
 think doing other SIMPLE stuff that svn does in a single cmd is ok to break
 into a dozen steps in git with a bunch of cmdline opts u have to keep looking
 up, and if in svn i had to write a small script to do a bisect (which was
 perfectly possible too) then svn insta-sucks. but having to wrap up git or
 memorize a vast series of steps for everything u need to do in git is 
 perfectly
 fine and great!

 git is a poor tool. it's interface is poor. it does some cool stuff - but as a
 tool it is poor. if you want people to follow conventions/procedures, don't
 make them have to read your powerpoint on them and study them and memorize the
 document/process. (and the people here know what i'm referring to). make the
 TOOL doe the thing for you obviously and simply. for git that would normally
 mean patching it (not as easy), but a simple wrapper does the job. don't 
 define
 a document to describe a process - encapsulate it in a simple tool (script).

I was going to reply, but then the complaints became too entertaining.
Instead acidx gave me this link that I'd like to share:
http://usvsth3m.co.uk/javascript-under-pressure/torvalds.gif


Lucas De Marchi

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread The Rasterman
On Fri, 4 Oct 2013 15:57:52 -0300 Lucas De Marchi
lucas.demar...@profusion.mobi said:

 On Fri, Oct 4, 2013 at 7:05 AM, Carsten Haitzler ras...@rasterman.com wrote:
  On Fri, 04 Oct 2013 11:42:35 +0200 Bertrand Jacquin be...@meleeweb.net
  said:
 
   steps 3, 4, 5, 6, 8... are an incantation. to be done in that order.
   there is
   --no-ff... and he series.. its a DEFINITE incantation. read up on git
   as a
   leaky abstraction. it is very much one. it forces peole to learn a
   series of
   incantations/steps all the time as opposed to just having a single do
   X where
   X is always the same series of steps. why do it by hand. why have to
   LEARN by
   heart and then of course get it wrong at times
 
  Officially, raster is now a high level manager !
 
  Theses incantation are quite straight forward when you use git daily.
  Not at the first use, but become fast essential.
 
  i use git every day.. but i dont go making private branches and merging
  them. even then, take a look at my aliases and scripts dir. i fail to
  understand how many people survive doing everything manually by hand. i see
  it all around me. they do the full command like:
 
ps -ef | grep X
 
  when i do:
 
psg X
 
  why? i get tired of memorizing N steps or magic incantations. i do NOT do:
 
./autogen.sh 
make 
sudo make install
 
  i do:
 
cmi
 
  i never do:
 
make 
sudo make install
 
  i do:
 
mi
 
 
 why not use  names like a, b, c, d, e...? I guess it would be easier
 for you to remember all the aliases.

thats just silly. mi == Make Install. cmi == Configure Make Install. see my
original mail. i didnt say make it gb or x. just dont ask people to
memorize a series of 5, 6, 7 etc. steps each with a different git command and
incantation with attendant option if you want anyone to do things this way.

 
 
  why? i can't stand having to memorize a tonneof obscure incantations that
  make little sense outside of the leaky abstraction that is git:
 
  http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/
  https://news.ycombinator.com/item?id=3891598
 
  you may love doing it all by hand and find great pleasure in twisting your
  brain to work and think like gits internals do, but i do not. i want to
  perform a simple task and git turns it into a job of remembering a magic
  incantation. i keep now having to build scripts that wrap git stuff up so i
  dont have to do N steps and maybe forget one.
 
  the same people who say omg git is so awesome! it has git bisect! svn
  sucks! it is the worst thing. it doesnt have bisect have a set of
  standards that think doing other SIMPLE stuff that svn does in a single cmd
  is ok to break into a dozen steps in git with a bunch of cmdline opts u
  have to keep looking up, and if in svn i had to write a small script to do
  a bisect (which was perfectly possible too) then svn insta-sucks. but
  having to wrap up git or memorize a vast series of steps for everything u
  need to do in git is perfectly fine and great!
 
  git is a poor tool. it's interface is poor. it does some cool stuff - but
  as a tool it is poor. if you want people to follow conventions/procedures,
  don't make them have to read your powerpoint on them and study them and
  memorize the document/process. (and the people here know what i'm referring
  to). make the TOOL doe the thing for you obviously and simply. for git that
  would normally mean patching it (not as easy), but a simple wrapper does
  the job. don't define a document to describe a process - encapsulate it in
  a simple tool (script).
 
 I was going to reply, but then the complaints became too entertaining.
 Instead acidx gave me this link that I'd like to share:
 http://usvsth3m.co.uk/javascript-under-pressure/torvalds.gif

i'm happy for you that you love to memorize everything you do instead of
summarize and automate it. why use git? why not just calculate your diffs by
hand? it's oh so much more cool. much cooler than the i love git and
everything it does exactly as it is club is far less cool than i calculate my
own diffs and toggle them in in binary via switches club.

-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-04 Thread David Seikel
On Sat, 5 Oct 2013 11:54:46 +0900 Carsten Haitzler (The Rasterman)
ras...@rasterman.com wrote:

 On Fri, 4 Oct 2013 15:57:52 -0300 Lucas De Marchi
 lucas.demar...@profusion.mobi said:
 
  On Fri, Oct 4, 2013 at 7:05 AM, Carsten Haitzler
  ras...@rasterman.com wrote:
   On Fri, 04 Oct 2013 11:42:35 +0200 Bertrand Jacquin
   be...@meleeweb.net said:
  
steps 3, 4, 5, 6, 8... are an incantation. to be done in that
order. there is
--no-ff... and he series.. its a DEFINITE incantation. read up
on git as a
leaky abstraction. it is very much one. it forces peole to
learn a series of
incantations/steps all the time as opposed to just having a
single do X where
X is always the same series of steps. why do it by hand. why
have to LEARN by
heart and then of course get it wrong at times
  
   Officially, raster is now a high level manager !
  
   Theses incantation are quite straight forward when you use git
   daily. Not at the first use, but become fast essential.
  
   i use git every day.. but i dont go making private branches and
   merging them. even then, take a look at my aliases and scripts
   dir. i fail to understand how many people survive doing
   everything manually by hand. i see it all around me. they do the
   full command like:
  
 ps -ef | grep X
  
   when i do:
  
 psg X
  
   why? i get tired of memorizing N steps or magic incantations. i
   do NOT do:
  
 ./autogen.sh 
 make 
 sudo make install
  
   i do:
  
 cmi
  
   i never do:
  
 make 
 sudo make install
  
   i do:
  
 mi
  
  
  why not use  names like a, b, c, d, e...? I guess it would be easier
  for you to remember all the aliases.
 
 thats just silly. mi == Make Install. cmi == Configure Make Install.
 see my original mail. i didnt say make it gb or x. just dont ask
 people to memorize a series of 5, 6, 7 etc. steps each with a
 different git command and incantation with attendant option if you
 want anyone to do things this way.
 
  
  
   why? i can't stand having to memorize a tonneof obscure
   incantations that make little sense outside of the leaky
   abstraction that is git:
  
   http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/
   https://news.ycombinator.com/item?id=3891598
  
   you may love doing it all by hand and find great pleasure in
   twisting your brain to work and think like gits internals do, but
   i do not. i want to perform a simple task and git turns it into a
   job of remembering a magic incantation. i keep now having to
   build scripts that wrap git stuff up so i dont have to do N steps
   and maybe forget one.
  
   the same people who say omg git is so awesome! it has git
   bisect! svn sucks! it is the worst thing. it doesnt have bisect
   have a set of standards that think doing other SIMPLE stuff that
   svn does in a single cmd is ok to break into a dozen steps in git
   with a bunch of cmdline opts u have to keep looking up, and if in
   svn i had to write a small script to do a bisect (which was
   perfectly possible too) then svn insta-sucks. but having to wrap
   up git or memorize a vast series of steps for everything u need
   to do in git is perfectly fine and great!
  
   git is a poor tool. it's interface is poor. it does some cool
   stuff - but as a tool it is poor. if you want people to follow
   conventions/procedures, don't make them have to read your
   powerpoint on them and study them and memorize the
   document/process. (and the people here know what i'm referring
   to). make the TOOL doe the thing for you obviously and simply.
   for git that would normally mean patching it (not as easy), but a
   simple wrapper does the job. don't define a document to describe
   a process - encapsulate it in a simple tool (script).
  
  I was going to reply, but then the complaints became too
  entertaining. Instead acidx gave me this link that I'd like to
  share: http://usvsth3m.co.uk/javascript-under-pressure/torvalds.gif
 
 i'm happy for you that you love to memorize everything you do instead
 of summarize and automate it. why use git? why not just calculate
 your diffs by hand? it's oh so much more cool. much cooler than the
 i love git and everything it does exactly as it is club is far less
 cool than i calculate my own diffs and toggle them in in binary via
 switches club.

I'm even cooler, being in the I write my diffs directly to my hard
drive using a magnetised needle and a magnifying glass club.  Actually
I'm really short sighted, I can skip the magnifying glass bit.  B-)

-- 
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.


signature.asc
Description: PGP signature
--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the 

Re: [E-devel] Git, merges, and better work-flows

2013-10-03 Thread Peter Kjellerstedt
 -Original Message-
 From: Daniel Juyung Seo [mailto:seojuyu...@gmail.com]
 Sent: den 3 oktober 2013 06:55
 To: Enlightenment developer list
 Subject: Re: [E-devel] Git, merges, and better work-flows
 
 On Thu, Oct 3, 2013 at 12:20 AM, Tom Hacohen
 tom.haco...@samsung.comwrote:
 
  On 02/10/13 16:17, Tom Hacohen wrote:
   Hey guys,
  
   I would like to suggest a new work-flow. This work-flow will not be
   mandatory, but just an allowed alternative to the current commit
   to master approach.
  
   At the moment we do not allow merges, at all. This was to prevent
   people from littering the log with their inability to rebase (git 
   pull --rebase) their local changes on top of the existing commits. 
   This will still remain the same. I'd like to suggest using merges 
   to our advantage.
  
   I suggest the following:
   For fixes, small features, and the like, do the same as you do now.
   Commit and push to master.
  
   For bigger features, rewrites, or any form of a few commits that
   are tied together by being part of the same set, do as follows 
   (it's obviously simpler than that, I listed everything to over-
   simplify things):
   1. Create a branch (either local or remote) for your change.
   2. Work on that branch.
   3. When ready, instead of pushing to master:
   3. rebase over master (git fetch; git rebase origin/master).
   4. switch to master (git checkout master)
   6. git merge --no-ff your-feature-branch-name
   7. Describe your feature in the commit message.
   8. push to master (git push or git push origin master).
  
   I've done a few example commits on
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
  
   This work-flow lets us have linear history, while having feature-
   sets show as a single merge that can easily be reverted, provide a 
   good description about a feature and the commits that introduced it 
   and I find generally easier for the eye. There are also technical
   advantages, for example, if you run git log --first-parent you 
   will only see the merge commits, cleaning the log from all the 
   fluff involving a feature letting you just see the feature. Another 
   advantage is that git bisect will not go inside the merged branch 
   unless the issue was introduced there.
  
   Please feel free to inspect my repo, more specifically, the log:
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
  
   To see how it looks.
  
   Important note: commits on the merge branch should be treated as if
   they are on master, that is, don't use this as an excuse to make ugly
   commits with bad commit messages.
  
   Again: I'm not trying to make it mandatory, just to allow this sort
   of merges.
  
   Please let me know what you think.
 
  Needless to say, that if agreed upon, I will add some documentation
  about how best to follow this work-flow.
 
 Just update https://phab.enlightenment.org/w/git_practices/ must be
 enough
 :)
 
 Daniel Juyung Seo (SeoZ)
 
  --
  Tom.

The branching model Tom describes is a personal favorite of mine.
Here is a description of it with some dos and don'ts and other 
tips:

https://gist.github.com/jbenet/ee6c9ac48068889b0912

//Peter


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-03 Thread Tom Hacohen
On 03/10/13 08:48, Peter Kjellerstedt wrote:
 -Original Message-
 From: Daniel Juyung Seo [mailto:seojuyu...@gmail.com]
 Sent: den 3 oktober 2013 06:55
 To: Enlightenment developer list
 Subject: Re: [E-devel] Git, merges, and better work-flows

 On Thu, Oct 3, 2013 at 12:20 AM, Tom Hacohen
 tom.haco...@samsung.comwrote:

 On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit
 to master approach.

 At the moment we do not allow merges, at all. This was to prevent
 people from littering the log with their inability to rebase (git
 pull --rebase) their local changes on top of the existing commits.
 This will still remain the same. I'd like to suggest using merges
 to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that
 are tied together by being part of the same set, do as follows
 (it's obviously simpler than that, I listed everything to over-
 simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-
 sets show as a single merge that can easily be reverted, provide a
 good description about a feature and the commits that introduced it
 and I find generally easier for the eye. There are also technical
 advantages, for example, if you run git log --first-parent you
 will only see the merge commits, cleaning the log from all the
 fluff involving a feature letting you just see the feature. Another
 advantage is that git bisect will not go inside the merged branch
 unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if
 they are on master, that is, don't use this as an excuse to make ugly
 commits with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort
 of merges.

 Please let me know what you think.

 Needless to say, that if agreed upon, I will add some documentation
 about how best to follow this work-flow.

 Just update https://phab.enlightenment.org/w/git_practices/ must be
 enough
 :)

 Daniel Juyung Seo (SeoZ)

 --
 Tom.

 The branching model Tom describes is a personal favorite of mine.
 Here is a description of it with some dos and don'ts and other
 tips:

 https://gist.github.com/jbenet/ee6c9ac48068889b0912

 //Peter


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


THANK YOU. A very good link indeed.

--
Tom.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-03 Thread Tom Hacohen
On 03/10/13 03:55, Carsten Haitzler (The Rasterman) wrote:
 On Wed, 02 Oct 2013 16:20:38 +0100 Tom Hacohen tom.haco...@samsung.com said:

 On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit to
 master approach.

 At the moment we do not allow merges, at all. This was to prevent people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits. This will
 still remain the same. I'd like to suggest using merges to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that are
 tied together by being part of the same set, do as follows (it's
 obviously simpler than that, I listed everything to over-simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-sets
 show as a single merge that can easily be reverted, provide a good
 description about a feature and the commits that introduced it and I
 find generally easier for the eye. There are also technical advantages,
 for example, if you run git log --first-parent you will only see the
 merge commits, cleaning the log from all the fluff involving a feature
 letting you just see the feature. Another advantage is that git bisect
 will not go inside the merged branch unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if they
 are on master, that is, don't use this as an excuse to make ugly commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort of
 merges.

 Please let me know what you think.

 Needless to say, that if agreed upon, I will add some documentation
 about how best to follow this work-flow.

 write some mini tools/scripts. not just docs. if any step in such a workflow
 involves knowing some magic git incantation and/or more than 1 step, then wrap
 it up. eg.

 gitfeature-start BRANCHNAME
 gitfeature-merge

 the first just creates the branch named BRANCHNAME (with any given namespace
 prepended ) and ensure you switch to it.

 the second does all the last steps (rebase over master, blah blah blah) and
 just executes the appropriate sequence of git cmds.



As Lucas has said, it's pretty straight forward (and only one 
difference) compared to what most of us are used to. The only real 
difference is passing --no-ff instead of --rebase to git merge in my 
process.

Anyhow, this is the process in git commands:

Create a local branch for the feature (something I hope people do already):
git checkout -b branch-name

Work on your feature and commit.

rebase over master:
git fetch ; git rebase origin/master

Switch to master and merge --no-ff instead of --rebase
git checkout master ; git merge --no-ff branch-name

And push:
git push origin master

The stages are similar and the same. Also, as I've mentioned, let's let 
people try using it (it's not mandatory) and wait for feedback.

Also, please refer to the really good link Peter has posted to this thread:
https://gist.github.com/jbenet/ee6c9ac48068889b0912

--
Tom.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Git, merges, and better work-flows

2013-10-02 Thread Tom Hacohen
Hey guys,

I would like to suggest a new work-flow. This work-flow will not be 
mandatory, but just an allowed alternative to the current commit to 
master approach.

At the moment we do not allow merges, at all. This was to prevent people 
from littering the log with their inability to rebase (git pull 
--rebase) their local changes on top of the existing commits. This will 
still remain the same. I'd like to suggest using merges to our advantage.

I suggest the following:
For fixes, small features, and the like, do the same as you do now. 
Commit and push to master.

For bigger features, rewrites, or any form of a few commits that are 
tied together by being part of the same set, do as follows (it's 
obviously simpler than that, I listed everything to over-simplify things):
1. Create a branch (either local or remote) for your change.
2. Work on that branch.
3. When ready, instead of pushing to master:
3. rebase over master (git fetch; git rebase origin/master).
4. switch to master (git checkout master)
6. git merge --no-ff your-feature-branch-name
7. Describe your feature in the commit message.
8. push to master (git push or git push origin master).

I've done a few example commits on 
https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

This work-flow lets us have linear history, while having feature-sets 
show as a single merge that can easily be reverted, provide a good 
description about a feature and the commits that introduced it and I 
find generally easier for the eye. There are also technical advantages, 
for example, if you run git log --first-parent you will only see the 
merge commits, cleaning the log from all the fluff involving a feature 
letting you just see the feature. Another advantage is that git bisect 
will not go inside the merged branch unless the issue was introduced there.

Please feel free to inspect my repo, more specifically, the log:
https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

To see how it looks.

Important note: commits on the merge branch should be treated as if they 
are on master, that is, don't use this as an excuse to make ugly commits 
with bad commit messages.

Again: I'm not trying to make it mandatory, just to allow this sort of 
merges.

Please let me know what you think.

--
Tom.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Tom Hacohen
On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit to
 master approach.

 At the moment we do not allow merges, at all. This was to prevent people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits. This will
 still remain the same. I'd like to suggest using merges to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that are
 tied together by being part of the same set, do as follows (it's
 obviously simpler than that, I listed everything to over-simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-sets
 show as a single merge that can easily be reverted, provide a good
 description about a feature and the commits that introduced it and I
 find generally easier for the eye. There are also technical advantages,
 for example, if you run git log --first-parent you will only see the
 merge commits, cleaning the log from all the fluff involving a feature
 letting you just see the feature. Another advantage is that git bisect
 will not go inside the merged branch unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if they
 are on master, that is, don't use this as an excuse to make ugly commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort of
 merges.

 Please let me know what you think.

Needless to say, that if agreed upon, I will add some documentation 
about how best to follow this work-flow.

--
Tom.


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Gustavo Sverzut Barbieri
-0 I'm not convinced but I don't have any evidence that it's bad, just
a personal feeling.

However I'm not an active committer, so I don't count much these days
and I'll follow whatever you choose.

On Wed, Oct 2, 2013 at 12:20 PM, Tom Hacohen tom.haco...@samsung.com wrote:
 On 02/10/13 16:17, Tom Hacohen wrote:
 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit to
 master approach.

 At the moment we do not allow merges, at all. This was to prevent people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits. This will
 still remain the same. I'd like to suggest using merges to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that are
 tied together by being part of the same set, do as follows (it's
 obviously simpler than that, I listed everything to over-simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-sets
 show as a single merge that can easily be reverted, provide a good
 description about a feature and the commits that introduced it and I
 find generally easier for the eye. There are also technical advantages,
 for example, if you run git log --first-parent you will only see the
 merge commits, cleaning the log from all the fluff involving a feature
 letting you just see the feature. Another advantage is that git bisect
 will not go inside the merged branch unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if they
 are on master, that is, don't use this as an excuse to make ugly commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort of
 merges.

 Please let me know what you think.

 Needless to say, that if agreed upon, I will add some documentation
 about how best to follow this work-flow.

 --
 Tom.


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (19) 9225-2202
Contact: http://www.gustavobarbieri.com.br/contact

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Tom Hacohen
On 02/10/13 17:51, Gustavo Sverzut Barbieri wrote:
 -0 I'm not convinced but I don't have any evidence that it's bad, just
 a personal feeling.

 However I'm not an active committer, so I don't count much these days
 and I'll follow whatever you choose.

All I'm asking is the permission to do so (and recommend others to 
follow suit). At least for a test period. I wouldn't like to force 
anyone to do it. So you being an active committer doesn't really matter, 
because it affects viewers/reviewers, not committers.

--
Tom.


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Adrien Nader
Hi,

On Wed, Oct 02, 2013, Gustavo Sverzut Barbieri wrote:
 -0 I'm not convinced but I don't have any evidence that it's bad, just
 a personal feeling.

All it does is add a commit that says branch X was merged in branch Y.
There are two possible drawbacks:
- commit message should be checked to contain meaningful branch names
  (you can end up with bad names if you use bad names in your local
  branches and expect these names to never be seen by the public)
- one useless commit (some people actually don't like it)

-- 
Adrien Nader

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Tom Hacohen
On 02/10/13 18:12, Adrien Nader wrote:
 Hi,

 On Wed, Oct 02, 2013, Gustavo Sverzut Barbieri wrote:
 -0 I'm not convinced but I don't have any evidence that it's bad, just
 a personal feeling.

 All it does is add a commit that says branch X was merged in branch Y.
 There are two possible drawbacks:
 - commit message should be checked to contain meaningful branch names
(you can end up with bad names if you use bad names in your local
branches and expect these names to never be seen by the public)
 - one useless commit (some people actually don't like it)


Well not really. By default it shows that message. I also find the 
default message useless. I use that commit as an opportunity to describe 
the feature as a whole. Look at my example: 
https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/commit/?id=9f56f6a31762df8ae7f26e2481ea0032e1e90450

That's the merge commit.

As for the one useless commit: I think that without it, we have 10 
useless commits (the components making the feature), while with it, we 
have only 1 commit per change with the ability to look at more basic 
components of the commit. This makes review easier, and everything clear.

As I mentioned above, if you use git log --first-only, you won't even 
see the commits involved in the feature.

--
Tom.

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Gustavo Lima Chaves
* Tom Hacohen tom.haco...@samsung.com [2013-10-02 17:58:45 +0100]:

 On 02/10/13 17:51, Gustavo Sverzut Barbieri wrote:
  -0 I'm not convinced but I don't have any evidence that it's bad, just
  a personal feeling.
 
  However I'm not an active committer, so I don't count much these days
  and I'll follow whatever you choose.
 
 All I'm asking is the permission to do so (and recommend others to 
 follow suit). At least for a test period. I wouldn't like to force 
 anyone to do it. So you being an active committer doesn't really matter, 
 because it affects viewers/reviewers, not committers.

It seems fancy, we could give it a try.

 
 --
 Tom.
 
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

-- 
Gustavo Lima Chaves
Senior Developer @ Intel - Open Source Technology Center

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread The Rasterman
On Wed, 02 Oct 2013 16:20:38 +0100 Tom Hacohen tom.haco...@samsung.com said:

 On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will not be
  mandatory, but just an allowed alternative to the current commit to
  master approach.
 
  At the moment we do not allow merges, at all. This was to prevent people
  from littering the log with their inability to rebase (git pull
  --rebase) their local changes on top of the existing commits. This will
  still remain the same. I'd like to suggest using merges to our advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do now.
  Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits that are
  tied together by being part of the same set, do as follows (it's
  obviously simpler than that, I listed everything to over-simplify things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having feature-sets
  show as a single merge that can easily be reverted, provide a good
  description about a feature and the commits that introduced it and I
  find generally easier for the eye. There are also technical advantages,
  for example, if you run git log --first-parent you will only see the
  merge commits, cleaning the log from all the fluff involving a feature
  letting you just see the feature. Another advantage is that git bisect
  will not go inside the merged branch unless the issue was introduced there.
 
  Please feel free to inspect my repo, more specifically, the log:
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated as if they
  are on master, that is, don't use this as an excuse to make ugly commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this sort of
  merges.
 
  Please let me know what you think.
 
 Needless to say, that if agreed upon, I will add some documentation 
 about how best to follow this work-flow.

write some mini tools/scripts. not just docs. if any step in such a workflow
involves knowing some magic git incantation and/or more than 1 step, then wrap
it up. eg.

gitfeature-start BRANCHNAME
gitfeature-merge

the first just creates the branch named BRANCHNAME (with any given namespace
prepended ) and ensure you switch to it.

the second does all the last steps (rebase over master, blah blah blah) and
just executes the appropriate sequence of git cmds.


-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Lucas De Marchi
On Wed, Oct 2, 2013 at 11:55 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Wed, 02 Oct 2013 16:20:38 +0100 Tom Hacohen tom.haco...@samsung.com said:

 On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will not be
  mandatory, but just an allowed alternative to the current commit to
  master approach.
 
  At the moment we do not allow merges, at all. This was to prevent people
  from littering the log with their inability to rebase (git pull
  --rebase) their local changes on top of the existing commits. This will
  still remain the same. I'd like to suggest using merges to our advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do now.
  Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits that are
  tied together by being part of the same set, do as follows (it's
  obviously simpler than that, I listed everything to over-simplify things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having feature-sets
  show as a single merge that can easily be reverted, provide a good
  description about a feature and the commits that introduced it and I
  find generally easier for the eye. There are also technical advantages,
  for example, if you run git log --first-parent you will only see the
  merge commits, cleaning the log from all the fluff involving a feature
  letting you just see the feature. Another advantage is that git bisect
  will not go inside the merged branch unless the issue was introduced there.
 
  Please feel free to inspect my repo, more specifically, the log:
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated as if they
  are on master, that is, don't use this as an excuse to make ugly commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this sort of
  merges.
 
  Please let me know what you think.

I have no strong opinion. I have no problems with merges *when they
are well defined*, i.e. it's either a feature that is properly split
in multiple commits, or when there are people maintaining parts of the
tree and periodically merge them (like in linux kernel). And in those
cases even not being FF I think is ok.

I'd say let's give it a try for those who want to.


 Needless to say, that if agreed upon, I will add some documentation
 about how best to follow this work-flow.

 write some mini tools/scripts. not just docs. if any step in such a workflow
 involves knowing some magic git incantation and/or more than 1 step, then wrap
 it up. eg.

 gitfeature-start BRANCHNAME
 gitfeature-merge

humn... I don't think creating this beforehand makes any good. This
invariably ends up with horribly big scripts and people not really
understanding what's going on.

In his description I don't see any git incantation... they are just
the normal commands of every day.


Lucas De Marchi

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread The Rasterman
On Thu, 3 Oct 2013 00:10:17 -0300 Lucas De Marchi
lucas.demar...@profusion.mobi said:

 On Wed, Oct 2, 2013 at 11:55 PM, Carsten Haitzler ras...@rasterman.com
 wrote:
  On Wed, 02 Oct 2013 16:20:38 +0100 Tom Hacohen tom.haco...@samsung.com
  said:
 
  On 02/10/13 16:17, Tom Hacohen wrote:
   Hey guys,
  
   I would like to suggest a new work-flow. This work-flow will not be
   mandatory, but just an allowed alternative to the current commit to
   master approach.
  
   At the moment we do not allow merges, at all. This was to prevent people
   from littering the log with their inability to rebase (git pull
   --rebase) their local changes on top of the existing commits. This will
   still remain the same. I'd like to suggest using merges to our advantage.
  
   I suggest the following:
   For fixes, small features, and the like, do the same as you do now.
   Commit and push to master.
  
   For bigger features, rewrites, or any form of a few commits that are
   tied together by being part of the same set, do as follows (it's
   obviously simpler than that, I listed everything to over-simplify
   things):
   1. Create a branch (either local or remote) for your change.
   2. Work on that branch.
   3. When ready, instead of pushing to master:
   3. rebase over master (git fetch; git rebase origin/master).
   4. switch to master (git checkout master)
   6. git merge --no-ff your-feature-branch-name
   7. Describe your feature in the commit message.
   8. push to master (git push or git push origin master).
  
   I've done a few example commits on
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
  
   This work-flow lets us have linear history, while having feature-sets
   show as a single merge that can easily be reverted, provide a good
   description about a feature and the commits that introduced it and I
   find generally easier for the eye. There are also technical advantages,
   for example, if you run git log --first-parent you will only see the
   merge commits, cleaning the log from all the fluff involving a feature
   letting you just see the feature. Another advantage is that git bisect
   will not go inside the merged branch unless the issue was introduced
   there.
  
   Please feel free to inspect my repo, more specifically, the log:
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
  
   To see how it looks.
  
   Important note: commits on the merge branch should be treated as if they
   are on master, that is, don't use this as an excuse to make ugly commits
   with bad commit messages.
  
   Again: I'm not trying to make it mandatory, just to allow this sort of
   merges.
  
   Please let me know what you think.
 
 I have no strong opinion. I have no problems with merges *when they
 are well defined*, i.e. it's either a feature that is properly split
 in multiple commits, or when there are people maintaining parts of the
 tree and periodically merge them (like in linux kernel). And in those
 cases even not being FF I think is ok.
 
 I'd say let's give it a try for those who want to.
 
 
  Needless to say, that if agreed upon, I will add some documentation
  about how best to follow this work-flow.
 
  write some mini tools/scripts. not just docs. if any step in such a workflow
  involves knowing some magic git incantation and/or more than 1 step, then
  wrap it up. eg.
 
  gitfeature-start BRANCHNAME
  gitfeature-merge
 
 humn... I don't think creating this beforehand makes any good. This
 invariably ends up with horribly big scripts and people not really
 understanding what's going on.
 
 In his description I don't see any git incantation... they are just
 the normal commands of every day.

steps 3, 4, 5, 6, 8... are an incantation. to be done in that order. there is
--no-ff... and he series.. its a DEFINITE incantation. read up on git as a
leaky abstraction. it is very much one. it forces peole to learn a series of
incantations/steps all the time as opposed to just having a single do X where
X is always the same series of steps. why do it by hand. why have to LEARN by
heart and then of course get it wrong at times

 
 
 Lucas De Marchi
 
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 


-- 
- Codito, ergo sum - I code, therefore I am --
The Rasterman (Carsten Haitzler)ras...@rasterman.com



Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Lucas De Marchi
On Thu, Oct 3, 2013 at 12:25 AM, Carsten Haitzler ras...@rasterman.com wrote:
 On Thu, 3 Oct 2013 00:10:17 -0300 Lucas De Marchi
 lucas.demar...@profusion.mobi said:

 On Wed, Oct 2, 2013 at 11:55 PM, Carsten Haitzler ras...@rasterman.com
 wrote:
  On Wed, 02 Oct 2013 16:20:38 +0100 Tom Hacohen tom.haco...@samsung.com
  said:
 
  On 02/10/13 16:17, Tom Hacohen wrote:
   Hey guys,
  
   I would like to suggest a new work-flow. This work-flow will not be
   mandatory, but just an allowed alternative to the current commit to
   master approach.
  
   At the moment we do not allow merges, at all. This was to prevent people
   from littering the log with their inability to rebase (git pull
   --rebase) their local changes on top of the existing commits. This will
   still remain the same. I'd like to suggest using merges to our 
   advantage.
  
   I suggest the following:
   For fixes, small features, and the like, do the same as you do now.
   Commit and push to master.
  
   For bigger features, rewrites, or any form of a few commits that are
   tied together by being part of the same set, do as follows (it's
   obviously simpler than that, I listed everything to over-simplify
   things):
   1. Create a branch (either local or remote) for your change.
   2. Work on that branch.
   3. When ready, instead of pushing to master:
   3. rebase over master (git fetch; git rebase origin/master).
   4. switch to master (git checkout master)
   6. git merge --no-ff your-feature-branch-name
   7. Describe your feature in the commit message.
   8. push to master (git push or git push origin master).
  
   I've done a few example commits on
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
  
   This work-flow lets us have linear history, while having feature-sets
   show as a single merge that can easily be reverted, provide a good
   description about a feature and the commits that introduced it and I
   find generally easier for the eye. There are also technical advantages,
   for example, if you run git log --first-parent you will only see the
   merge commits, cleaning the log from all the fluff involving a feature
   letting you just see the feature. Another advantage is that git bisect
   will not go inside the merged branch unless the issue was introduced
   there.
  
   Please feel free to inspect my repo, more specifically, the log:
   https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
  
   To see how it looks.
  
   Important note: commits on the merge branch should be treated as if they
   are on master, that is, don't use this as an excuse to make ugly commits
   with bad commit messages.
  
   Again: I'm not trying to make it mandatory, just to allow this sort of
   merges.
  
   Please let me know what you think.

 I have no strong opinion. I have no problems with merges *when they
 are well defined*, i.e. it's either a feature that is properly split
 in multiple commits, or when there are people maintaining parts of the
 tree and periodically merge them (like in linux kernel). And in those
 cases even not being FF I think is ok.

 I'd say let's give it a try for those who want to.

 
  Needless to say, that if agreed upon, I will add some documentation
  about how best to follow this work-flow.
 
  write some mini tools/scripts. not just docs. if any step in such a 
  workflow
  involves knowing some magic git incantation and/or more than 1 step, then
  wrap it up. eg.
 
  gitfeature-start BRANCHNAME
  gitfeature-merge

 humn... I don't think creating this beforehand makes any good. This
 invariably ends up with horribly big scripts and people not really
 understanding what's going on.

 In his description I don't see any git incantation... they are just
 the normal commands of every day.

 steps 3, 4, 5, 6, 8... are an incantation. to be done in that order. there is
 --no-ff... and he series.. its a DEFINITE incantation. read up on git as a
 leaky abstraction. it is very much one. it forces peole to learn a series of
 incantations/steps all the time as opposed to just having a single do X 
 where
 X is always the same series of steps. why do it by hand. why have to LEARN by
 heart and then of course get it wrong at times

because you won't get it wrong if you know what's going on. And if you
still do then and only then is the time to wrap it up.

Lucas De Marchi

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Daniel Juyung Seo
On Thu, Oct 3, 2013 at 12:20 AM, Tom Hacohen tom.haco...@samsung.comwrote:

 On 02/10/13 16:17, Tom Hacohen wrote:
  Hey guys,
 
  I would like to suggest a new work-flow. This work-flow will not be
  mandatory, but just an allowed alternative to the current commit to
  master approach.
 
  At the moment we do not allow merges, at all. This was to prevent people
  from littering the log with their inability to rebase (git pull
  --rebase) their local changes on top of the existing commits. This will
  still remain the same. I'd like to suggest using merges to our advantage.
 
  I suggest the following:
  For fixes, small features, and the like, do the same as you do now.
  Commit and push to master.
 
  For bigger features, rewrites, or any form of a few commits that are
  tied together by being part of the same set, do as follows (it's
  obviously simpler than that, I listed everything to over-simplify
 things):
  1. Create a branch (either local or remote) for your change.
  2. Work on that branch.
  3. When ready, instead of pushing to master:
  3. rebase over master (git fetch; git rebase origin/master).
  4. switch to master (git checkout master)
  6. git merge --no-ff your-feature-branch-name
  7. Describe your feature in the commit message.
  8. push to master (git push or git push origin master).
 
  I've done a few example commits on
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/
 
  This work-flow lets us have linear history, while having feature-sets
  show as a single merge that can easily be reverted, provide a good
  description about a feature and the commits that introduced it and I
  find generally easier for the eye. There are also technical advantages,
  for example, if you run git log --first-parent you will only see the
  merge commits, cleaning the log from all the fluff involving a feature
  letting you just see the feature. Another advantage is that git bisect
  will not go inside the merged branch unless the issue was introduced
 there.
 
  Please feel free to inspect my repo, more specifically, the log:
  https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/
 
  To see how it looks.
 
  Important note: commits on the merge branch should be treated as if they
  are on master, that is, don't use this as an excuse to make ugly commits
  with bad commit messages.
 
  Again: I'm not trying to make it mandatory, just to allow this sort of
  merges.
 
  Please let me know what you think.

 Needless to say, that if agreed upon, I will add some documentation
 about how best to follow this work-flow.


Just update https://phab.enlightenment.org/w/git_practices/ must be enough
:)

Daniel Juyung Seo (SeoZ)


 --
 Tom.



 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Git, merges, and better work-flows

2013-10-02 Thread Daniel Juyung Seo
Thanks Tasn for the suggestion.
I like the idea.

It's been a while since we started Rebase instead of Merge policy and it
worked well so far.
Now it's time to enhance it more.

Thanks.

Daniel Juyung Seo (SeoZ)


On Thu, Oct 3, 2013 at 12:17 AM, Tom Hacohen tom.haco...@samsung.comwrote:

 Hey guys,

 I would like to suggest a new work-flow. This work-flow will not be
 mandatory, but just an allowed alternative to the current commit to
 master approach.

 At the moment we do not allow merges, at all. This was to prevent people
 from littering the log with their inability to rebase (git pull
 --rebase) their local changes on top of the existing commits. This will
 still remain the same. I'd like to suggest using merges to our advantage.

 I suggest the following:
 For fixes, small features, and the like, do the same as you do now.
 Commit and push to master.

 For bigger features, rewrites, or any form of a few commits that are
 tied together by being part of the same set, do as follows (it's
 obviously simpler than that, I listed everything to over-simplify things):
 1. Create a branch (either local or remote) for your change.
 2. Work on that branch.
 3. When ready, instead of pushing to master:
 3. rebase over master (git fetch; git rebase origin/master).
 4. switch to master (git checkout master)
 6. git merge --no-ff your-feature-branch-name
 7. Describe your feature in the commit message.
 8. push to master (git push or git push origin master).

 I've done a few example commits on
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/

 This work-flow lets us have linear history, while having feature-sets
 show as a single merge that can easily be reverted, provide a good
 description about a feature and the commits that introduced it and I
 find generally easier for the eye. There are also technical advantages,
 for example, if you run git log --first-parent you will only see the
 merge commits, cleaning the log from all the fluff involving a feature
 letting you just see the feature. Another advantage is that git bisect
 will not go inside the merged branch unless the issue was introduced there.

 Please feel free to inspect my repo, more specifically, the log:
 https://git.enlightenment.org/devs/tasn/git-work-flow-example.git/log/

 To see how it looks.

 Important note: commits on the merge branch should be treated as if they
 are on master, that is, don't use this as an excuse to make ugly commits
 with bad commit messages.

 Again: I'm not trying to make it mandatory, just to allow this sort of
 merges.

 Please let me know what you think.

 --
 Tom.


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel