Prasanna,

+1 to using rebase on feature branches.

At least as I understand things and have experienced rebase, it
preserves  all commits on the feature branch.  For Review Board and
master merges, those commits need to be collapsed, or in git parlance,
squashed.  The script I referenced below squashes the commits and
works regardless of whether you have been using rebase or merge on
your feature branch.

Thanks,
-John

On Jun 13, 2013, at 2:01 AM, Prasanna Santhanam <t...@apache.org> wrote:

> The 'cleanest cleanest' way is to use rebase as Sheng recommends but I
> know people who've used git successfully with just doing merge. It's
> (rebase) one of those features of git you discover only after
> using-abusing it for long enough. But if you're adventurous ..  :)
>
> Do NOT do a rebase if you've done merges until now on your branch.
>
> Here's a nice post explaining how to work with rebase for those
> hesitant to use it:
> http://mettadore.com/analysis/a-simple-git-rebase-workflow-explained/
>
> --
> Prasanna.,
>
> On Thu, Jun 13, 2013 at 01:50:15AM -0400, John Burwell wrote:
>> Mike,
>>
>> The cleanest way have found to create these patches is  actually
>> create a temporary work branch from master, merge the feature branch
>> into it with the squashed option, and then generate the patch.  This
>> gist (https://gist.github.com/jburwell/5771480) is the shell script
>> I used to generate the S3-backed Secondary Storage patch submissions
>> to Review Board.  It should be fairly easy to adapt by adjusting the
>> FEATURE_BRANCH and WORK_HOME values.
>>
>> Thanks,
>> -John
>>
>> On Jun 12, 2013, at 6:25 PM, Mike Tutkowski <mike.tutkow...@solidfire.com> 
>> wrote:
>>
>>> I have a branch, solidfire_plugin, off of master in my local repo.
>>>
>>> I wanted to submit a patch to Review Board.
>>>
>>> Essentially, I followed these steps (where upstream is the official CS
>>> repo):
>>>
>>> git checkout master
>>>
>>> git fetch upstream
>>>
>>> git reset --hard upstream/master
>>>
>>> git checkout solidfire_plugin
>>>
>>> git merge master
>>>
>>> git format-patch master --stdout > solidfire_plugin.patch (this collected
>>> six commits worth of work)
>>>
>>> git checkout master
>>>
>>> git am solidfire_plugin.patch
>>> This final command lead to this error message (below). I was surprised
>>> because I had just performed a merge from master to solidfire_plugin before
>>> generating the patch file (so I was thinking the patch file should cleanly
>>> apply on master).
>>>
>>> Any thoughts on this?
>>>
>>> Thanks!
>>>
>>> mtutkowski-lt:cloudstack mtutkowski$ git am solidfire_plugin_a.patch
>>> Applying: SolidFire plug-in and enhancements to the storage plug-in
>>> framework
>>> /Users/mtutkowski/documents/cloudstack/src/cloudstack/.git/rebase-apply/patch:60:
>>> trailing whitespace.
>>>
>>> /Users/mtutkowski/documents/cloudstack/src/cloudstack/.git/rebase-apply/patch:62:
>>> trailing whitespace.
>>>
>>> /Users/mtutkowski/documents/cloudstack/src/cloudstack/.git/rebase-apply/patch:64:
>>> trailing whitespace.
>>>
>>> /Users/mtutkowski/documents/cloudstack/src/cloudstack/.git/rebase-apply/patch:66:
>>> trailing whitespace.
>>>
>>> /Users/mtutkowski/documents/cloudstack/src/cloudstack/.git/rebase-apply/patch:68:
>>> trailing whitespace.
>>>
>>> error: patch failed: api/src/com/cloud/offering/DiskOffering.java:46
>>> error: api/src/com/cloud/offering/DiskOffering.java: patch does not apply
>>> error: patch failed: api/src/com/cloud/storage/Volume.java:120
>>> error: api/src/com/cloud/storage/Volume.java: patch does not apply
>>> error: patch failed: api/src/org/apache/cloudstack/api/ApiConstants.java:49
>>> error: api/src/org/apache/cloudstack/api/ApiConstants.java: patch does not
>>> apply
>>> error: patch failed:
>>> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java:52
>>> error:
>>> api/src/org/apache/cloudstack/api/command/admin/offering/CreateDiskOfferingCmd.java:
>>> patch does not apply
>>> error: patch failed:
>>> api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java:67
>>> error:
>>> api/src/org/apache/cloudstack/api/command/user/volume/CreateVolumeCmd.java:
>>> patch does not apply
>>> error: patch failed:
>>> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java:51
>>> error:
>>> api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java: patch
>>> does not apply
>>> error: patch failed:
>>> api/src/org/apache/cloudstack/api/response/VolumeResponse.java:79
>>> error: api/src/org/apache/cloudstack/api/response/VolumeResponse.java:
>>> patch does not apply
>>> error: patch failed: client/WEB-INF/classes/resources/messages.properties:14
>>> error: client/WEB-INF/classes/resources/messages.properties: patch does not
>>> apply
>>> error: patch failed: client/pom.xml:22
>>> error: client/pom.xml: patch does not apply
>>> error: patch failed: client/tomcatconf/applicationContext.xml.in:798
>>> error: client/tomcatconf/applicationContext.xml.in: patch does not apply
>>> error: patch failed:
>>> core/src/com/cloud/agent/api/AttachVolumeCommand.java:23
>>> error: core/src/com/cloud/agent/api/AttachVolumeCommand.java: patch does
>>> not apply
>>> error: patch failed:
>>> core/test/org/apache/cloudstack/api/agent/test/AttachVolumeAnswerTest.java:28
>>> error:
>>> core/test/org/apache/cloudstack/api/agent/test/AttachVolumeAnswerTest.java:
>>> patch does not apply
>>> error: patch failed:
>>> core/test/org/apache/cloudstack/api/agent/test/AttachVolumeCommandTest.java:27
>>> error:
>>> core/test/org/apache/cloudstack/api/agent/test/AttachVolumeCommandTest.java:
>>> patch does not apply
>>> error: patch failed:
>>> engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreParameters.java:36
>>> error:
>>> engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreParameters.java:
>>> patch does not apply
>>> error: patch failed:
>>> engine/schema/src/com/cloud/storage/DiskOfferingVO.java:34
>>> error: engine/schema/src/com/cloud/storage/DiskOfferingVO.java: patch does
>>> not apply
>>> error: patch failed: engine/schema/src/com/cloud/storage/VolumeVO.java:68
>>> error: engine/schema/src/com/cloud/storage/VolumeVO.java: patch does not
>>> apply
>>> error: patch failed:
>>> engine/storage/integration-test/test/org/apache/cloudstack/storage/allocator/StorageAllocatorTest.java:149
>>> error:
>>> engine/storage/integration-test/test/org/apache/cloudstack/storage/allocator/StorageAllocatorTest.java:
>>> patch does not apply
>>> error: patch failed:
>>> engine/storage/src/org/apache/cloudstack/storage/allocator/ZoneWideStoragePoolAllocator.java:57
>>> error:
>>> engine/storage/src/org/apache/cloudstack/storage/allocator/ZoneWideStoragePoolAllocator.java:
>>> patch does not apply
>>> error: patch failed:
>>> engine/storage/src/org/apache/cloudstack/storage/volume/datastore/PrimaryDataStoreHelper.java:84
>>> error:
>>> engine/storage/src/org/apache/cloudstack/storage/volume/datastore/PrimaryDataStoreHelper.java:
>>> patch does not apply
>>> error: patch failed:
>>> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java:92
>>> error:
>>> engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeObject.java:
>>> patch does not apply
>>> error: patch failed:
>>> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java:5362
>>> error:
>>> plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java:
>>> patch does not apply
>>> error: patch failed: plugins/storage/volume/solidfire/pom.xml:12
>>> error: plugins/storage/volume/solidfire/pom.xml: patch does not apply
>>> error: patch failed:
>>> plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java:18
>>> error:
>>> plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java:
>>> patch does not apply
>>> error:
>>> plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/lifecycle/SolidFirePrimaryDataStoreLifeCycle.java:
>>> already exists in index
>>> error: patch failed:
>>> plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/provider/SolidfirePrimaryDataStoreProvider.java:1
>>> error:
>>> plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/provider/SolidfirePrimaryDataStoreProvider.java:
>>> patch does not apply
>>> error:
>>> plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/util/SolidFireUtil.java:
>>> already exists in index
>>> error: patch failed:
>>> server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java:67
>>> error: server/src/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java:
>>> patch does not apply
>>> error: patch failed:
>>> server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java:101
>>> error: server/src/com/cloud/api/query/dao/VolumeJoinDaoImpl.java: patch
>>> does not apply
>>> error: patch failed:
>>> server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java:60
>>> error: server/src/com/cloud/api/query/vo/DiskOfferingJoinVO.java: patch
>>> does not apply
>>> error: patch failed: server/src/com/cloud/api/query/vo/VolumeJoinVO.java:57
>>> error: server/src/com/cloud/api/query/vo/VolumeJoinVO.java: patch does not
>>> apply
>>> error: patch failed:
>>> server/src/com/cloud/configuration/ConfigurationManager.java:97
>>> error: server/src/com/cloud/configuration/ConfigurationManager.java: patch
>>> does not apply
>>> error: patch failed:
>>> server/src/com/cloud/configuration/ConfigurationManagerImpl.java:2160
>>> error: server/src/com/cloud/configuration/ConfigurationManagerImpl.java:
>>> patch does not apply
>>> error: patch failed:
>>> server/src/com/cloud/server/ConfigurationServerImpl.java:925
>>> error: server/src/com/cloud/server/ConfigurationServerImpl.java: patch does
>>> not apply
>>> error: patch failed: server/src/com/cloud/storage/VolumeManager.java:45
>>> error: server/src/com/cloud/storage/VolumeManager.java: patch does not apply
>>> error: patch failed: server/src/com/cloud/storage/VolumeManagerImpl.java:58
>>> error: server/src/com/cloud/storage/VolumeManagerImpl.java: patch does not
>>> apply
>>> error: patch failed: server/src/com/cloud/test/DatabaseConfig.java:965
>>> error: server/src/com/cloud/test/DatabaseConfig.java: patch does not apply
>>> error: patch failed:
>>> server/test/com/cloud/vpc/MockConfigurationManagerImpl.java:654
>>> error: server/test/com/cloud/vpc/MockConfigurationManagerImpl.java: patch
>>> does not apply
>>> error: patch failed: setup/db/db/schema-410to420.sql:263
>>> error: setup/db/db/schema-410to420.sql: patch does not apply
>>> error: patch failed: tools/marvin/marvin/cloudstackConnection.py:204
>>> error: tools/marvin/marvin/cloudstackConnection.py: patch does not apply
>>> error: patch failed: ui/dictionary.jsp:25
>>> error: ui/dictionary.jsp: patch does not apply
>>> error: patch failed: ui/scripts/configuration.js:906
>>> error: ui/scripts/configuration.js: patch does not apply
>>> error: patch failed: ui/scripts/docs.js:270
>>> error: ui/scripts/docs.js: patch does not apply
>>> error: patch failed: ui/scripts/storage.js:132
>>> error: ui/scripts/storage.js: patch does not apply
>>> Patch failed at 0001 SolidFire plug-in and enhancements to the storage
>>> plug-in framework
>>> When you have resolved this problem run "git am --resolved".
>>> If you would prefer to skip this patch, instead run "git am --skip".
>>> To restore the original branch and stop patching run "git am --abort".
>>>
>>>
>>> --
>>> *Mike Tutkowski*
>>> *Senior CloudStack Developer, SolidFire Inc.*
>>> e: mike.tutkow...@solidfire.com
>>> o: 303.746.7302
>>> Advancing the way the world uses the
>>> cloud<http://solidfire.com/solution/overview/?video=play>
>>> *?*
>
>
> ------------------------
> Powered by BigRock.com
>

Reply via email to