[llvm-commits] Fwd: [llvm] r48822 - in /llvm/trunk: include/llvm/CodeGen/ScheduleDAG.h include/llvm/CodeGen/SelectionDAGNodes.h lib/CodeGen/SelectionDAG/DAGCombiner.cpp lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeTypes.c

Christopher Lamb christopher.lamb at gmail.com
Sat Apr 5 12:19:44 PDT 2008


On Apr 4, 2008, at 8:39 AM, Roman Levenstein wrote:

> ---------- Forwarded message ----------
> From: Roman Levenstein <romix.llvm at googlemail.com>
> Date: 04.04.2008 16:28
> Subject: Re: [llvm-commits] [llvm] r48822 - in /llvm/trunk:
> include/llvm/CodeGen/ScheduleDAG.h
> include/llvm/CodeGen/SelectionDAGNodes.h
> lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
> lib/CodeGen/SelectionDAG/LegalizeTypes.cp
> To: Duncan Sands <baldrick at free.fr>
>
>
> Hi Duncan,
>
>  2008/4/4, Duncan Sands <baldrick at free.fr>:
>
>> Hi,
>>
>>
>>> I have a stupid question regarding this. My source tree is newer  
>>> than
>>> that revision and some other unrelated things are changed in the
>>> affected files already. Therefore I cannot so simply commit the fix.
>>> How can I do that? Probably I can edit the backed-out patch, but how
>>> do I commit this patch file  to the SVN? Is it possible to commit  
>>> the
>>> file containing a patch, i.e. without SVN analyzing the source files
>>> on my side?
>>
>>
>> do
>>         svn update
>>  This will auto-merge in the upstream changes.  If there is a  
>> conflict
>>  you will see letter C and will need to fix up the conflict by  
>> hand-editing
>>  (the conflicted parts are marked with <<<< etc in the file).   
>> Once you
>>  have fixed up the conflict, you can do
>>         svn resolved file_name
>>  If everything seems fine, you can do
>>         svn commit
>>
>>  The basic rule is that you can't commit unless you have the  
>> latest version
>>  of the file; using svn update makes sure you have the latest  
>> version.
>
>
> Thanks for your comment.  But I think I did not explained my problem
>  in a proper way. The original commit was approved and was  
> implementing
>  a certain way of handling use lists for SDNode objects. Then this
>  commit was reverted by Evan, because Dan has found some issues with
>  this patch. But in the mean time I have changed a lot in the
>  implementation of the use-lists in my local copy.
>
>  I know how to fix the original commit. Evan asked me to fix it and to
>  commit again this fixed OLD version of my use-lists patch. But I  
> don't
>  have this version any more in my local copy, since I completely
>  changed it. I only have my old commit in a form of a patch file. My
>  question is: How can I commit the OLD version fixed by me? I hope the
>  situation is more clear now?

This problem is a bit of a pain to deal with. Here's what I normally do:

save off my current changes:
svn diff > current_changes.patch

revert the tree:
find llvm/ | xargs svn revert

update to latest:
svn update

apply the old patch:
patch -p0 < old_changes.patch

resolve conflicts, modify files, build, test. If everything works:
svn commit

then patch my latest working state back in:
patch -p0 < current_changes.patch

I suppose you could get around some of this by maintaining two  
working copies, but this is one of those annoying things about this  
style of SCM.
--
Christopher Lamb



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20080405/7c1010fb/attachment.html>


More information about the llvm-commits mailing list