bugs, fixes and targeting Juju versions

2015-05-04 Thread Jesse Meek

Hi All,

tl;dr `git diff --no-prefix master  diff.patch; patch -p0  diff.patch` 
is useful for landing bug fixes in different versions of juju.


As a lot of us are currently bug hunting and needing to land fixes in 
multiple versions of Juju, I thought I'd share my process of doing that 
(maybe it's helpful?):


So say you've branched master, let's call it bug-fix-master-branch, 
it's got your fix but you need to land it in 1.24. So branch 1.24, let's 
call it bug-fix-124, and do the following:


# generate a diff of your changes that can be used with patch 
(--no-prefix master is the magic flag that generates the right format)

(bug-fix-master-branch) $ git diff --no-prefix master  diff.patch

# don't add or commit, checkout the other branch
(bug-fix-master-branch) $ git checkout bug-fix-124

# diff.patch is still there, unstaged. So use it to add the patch
(bug-fix-124) $ patch -p0  diff.patch

# do a sanity check
(bug-fix-124) $ git diff

# remove the patch file
(bug-fix-124) $ rm diff.patch

You've now got a bug-fix branch eligible for automatic merging targeting 
1.24.


Cheers,
Jess

--
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: bugs, fixes and targeting Juju versions

2015-05-04 Thread Tim Penhey
git cherry-pick does this as a git command.

Tim


On 05/05/15 13:03, Jesse Meek wrote:
 Hi All,
 
 tl;dr `git diff --no-prefix master  diff.patch; patch -p0  diff.patch`
 is useful for landing bug fixes in different versions of juju.
 
 As a lot of us are currently bug hunting and needing to land fixes in
 multiple versions of Juju, I thought I'd share my process of doing that
 (maybe it's helpful?):
 
 So say you've branched master, let's call it bug-fix-master-branch,
 it's got your fix but you need to land it in 1.24. So branch 1.24, let's
 call it bug-fix-124, and do the following:
 
 # generate a diff of your changes that can be used with patch
 (--no-prefix master is the magic flag that generates the right format)
 (bug-fix-master-branch) $ git diff --no-prefix master  diff.patch
 
 # don't add or commit, checkout the other branch
 (bug-fix-master-branch) $ git checkout bug-fix-124
 
 # diff.patch is still there, unstaged. So use it to add the patch
 (bug-fix-124) $ patch -p0  diff.patch
 
 # do a sanity check
 (bug-fix-124) $ git diff
 
 # remove the patch file
 (bug-fix-124) $ rm diff.patch
 
 You've now got a bug-fix branch eligible for automatic merging targeting
 1.24.
 
 Cheers,
 Jess
 


-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: bugs, fixes and targeting Juju versions

2015-05-04 Thread Ian Booth
Yes, cheery pick is something I use all the time, as it fills out the PR in the
latter branches with a nice commit message based on the original and also
includes the original PR from which the commit was first done.

On 05/05/15 11:45, Jesse Meek wrote:
 Ah, even better. Now I can update my workflow :)
 
 On 05/05/15 13:43, Menno Smits wrote:
 cherry-pick will even grab the top commit of a branch if you give the branch
 name (presuming the fix is a single commit). For example:

 git checkout -b bug-fix-1.24 upstream/1.24 # create a branch for the fix in 
 1.24
 git cherry-pick bug-fix-master-branch   # pull the fix across

 There are various ways of grabbing multiple revisions too.

 And of course, as per Ian's recent email you should be targeting fixes to the
 lowest affected version and working forwards. So really in your example the
 fix should be made for 1.24 and the cherry picked onto a branch made from 
 master.




 On 5 May 2015 at 13:15, Tim Penhey tim.pen...@canonical.com
 mailto:tim.pen...@canonical.com wrote:

 git cherry-pick does this as a git command.

 Tim


 On 05/05/15 13:03, Jesse Meek wrote:
  Hi All,
 
  tl;dr `git diff --no-prefix master  diff.patch; patch -p0 
 diff.patch`
  is useful for landing bug fixes in different versions of juju.
 
  As a lot of us are currently bug hunting and needing to land
 fixes in
  multiple versions of Juju, I thought I'd share my process of
 doing that
  (maybe it's helpful?):
 
  So say you've branched master, let's call it
 bug-fix-master-branch,
  it's got your fix but you need to land it in 1.24. So branch
 1.24, let's
  call it bug-fix-124, and do the following:
 
  # generate a diff of your changes that can be used with patch
  (--no-prefix master is the magic flag that generates the right
 format)
  (bug-fix-master-branch) $ git diff --no-prefix master  diff.patch
 
  # don't add or commit, checkout the other branch
  (bug-fix-master-branch) $ git checkout bug-fix-124
 
  # diff.patch is still there, unstaged. So use it to add the patch
  (bug-fix-124) $ patch -p0  diff.patch
 
  # do a sanity check
  (bug-fix-124) $ git diff
 
  # remove the patch file
  (bug-fix-124) $ rm diff.patch
 
  You've now got a bug-fix branch eligible for automatic merging
 targeting
  1.24.
 
  Cheers,
  Jess
 


 --
 Juju-dev mailing list
 Juju-dev@lists.ubuntu.com mailto:Juju-dev@lists.ubuntu.com
 Modify settings or unsubscribe at:
 https://lists.ubuntu.com/mailman/listinfo/juju-dev


 
 
 
 

-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev


Re: bugs, fixes and targeting Juju versions

2015-05-04 Thread Jesse Meek

Ah, even better. Now I can update my workflow :)

On 05/05/15 13:43, Menno Smits wrote:
cherry-pick will even grab the top commit of a branch if you give the 
branch name (presuming the fix is a single commit). For example:


git checkout -b bug-fix-1.24 upstream/1.24 # create a branch for the 
fix in 1.24

git cherry-pick bug-fix-master-branch   # pull the fix across

There are various ways of grabbing multiple revisions too.

And of course, as per Ian's recent email you should be targeting fixes 
to the lowest affected version and working forwards. So really in your 
example the fix should be made for 1.24 and the cherry picked onto a 
branch made from master.





On 5 May 2015 at 13:15, Tim Penhey tim.pen...@canonical.com 
mailto:tim.pen...@canonical.com wrote:


git cherry-pick does this as a git command.

Tim


On 05/05/15 13:03, Jesse Meek wrote:
 Hi All,

 tl;dr `git diff --no-prefix master  diff.patch; patch -p0 
diff.patch`
 is useful for landing bug fixes in different versions of juju.

 As a lot of us are currently bug hunting and needing to land
fixes in
 multiple versions of Juju, I thought I'd share my process of
doing that
 (maybe it's helpful?):

 So say you've branched master, let's call it
bug-fix-master-branch,
 it's got your fix but you need to land it in 1.24. So branch
1.24, let's
 call it bug-fix-124, and do the following:

 # generate a diff of your changes that can be used with patch
 (--no-prefix master is the magic flag that generates the right
format)
 (bug-fix-master-branch) $ git diff --no-prefix master  diff.patch

 # don't add or commit, checkout the other branch
 (bug-fix-master-branch) $ git checkout bug-fix-124

 # diff.patch is still there, unstaged. So use it to add the patch
 (bug-fix-124) $ patch -p0  diff.patch

 # do a sanity check
 (bug-fix-124) $ git diff

 # remove the patch file
 (bug-fix-124) $ rm diff.patch

 You've now got a bug-fix branch eligible for automatic merging
targeting
 1.24.

 Cheers,
 Jess



--
Juju-dev mailing list
Juju-dev@lists.ubuntu.com mailto:Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/juju-dev




-- 
Juju-dev mailing list
Juju-dev@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/juju-dev