[Unison-hackers] UI patches, build script

frederik at ofb.net frederik at ofb.net
Sat Feb 1 08:01:21 EST 2020


The following steps work for me:

     $ git clone https://github.com/navarum/tweaks
     Cloning into 'tweaks'...
     remote: Enumerating objects: 27, done.
     remote: Counting objects: 100% (27/27), done.
     remote: Compressing objects: 100% (20/20), done.
     remote: Total 469 (delta 7), reused 20 (delta 5), pack-reused 442
     Receiving objects: 100% (469/469), 94.89 KiB | 689.00 KiB/s, done.
     Resolving deltas: 100% (247/247), done.
     $ git clone https://github.com/bcpierce00/unison.git
     Cloning into 'unison'...
     remote: Enumerating objects: 9, done.
     remote: Counting objects: 100% (9/9), done.
     remote: Compressing objects: 100% (9/9), done.
     remote: Total 8959 (delta 2), reused 2 (delta 0), pack-reused 8950
     Receiving objects: 100% (8959/8959), 14.00 MiB | 7.41 MiB/s, done.
     Resolving deltas: 100% (6842/6842), done.
     $ cd unison
     $ git config user.name "Frederick Eaton"; git config user.email "frederik at ofb.net"
     $ git am --signoff ../tweaks/unison/patches/000*.patch
     Applying: Test fix for confusing 'stop reconciling' UI bug
     Applying: Include current file in percent action
     Applying: try to fix actOnMatching

I'm not sure what could have gone wrong; note they have to be applied in order.

Thank you,

Frederick

On Sat, Feb 01, 2020 at 07:28:28AM -0500, Benjamin C. Pierce wrote:
>I did try applying the patch, but I had trouble getting it to work.  (This is not a big surprise: it was the first time I’d tried patching with git.)
>
>git am --signoff < temp1.patch
>
>Applying: Test fix for confusing 'stop reconciling' UI bug
>error: patch failed: src/uitext.ml:607
>error: src/uitext.ml: patch does not apply
>
>Unless there’s something obvious I’m doing wrong, a PR (or two, since your other fixes also seem useful) would probably be smoother.
>
>    - B
>
>> On Jan 31, 2020, at 11:31 PM, frederik at ofb.net wrote:
>>
>> Thank you Benjamin. I'm not sure why a PR would make it easier, is
>> that like a digital signature or something? There are presumably
>> comments and other things that you would want to clean up by hand. I
>> can do it, but I'm guessing you want only the first patch.
>>
>> The comment in the second patch describes it as a "work in progress".
>> It tries to fix some behavior that was added recently with all the
>> "matching" predicates, in particular "%", but other commands need to
>> be changed to make them consistent. The current behavior is confusing
>> to me because the predicates don't apply to the current file, only the
>> ones after. So if you want to do something for every file, you have to
>> treat the first one differently from 2..n:
>>
>>    $ unison a ssh://thutmose/a
>>    Unison 2.51.2 (ocaml 4.08.1): Contacting server...
>>    Connected [//ptolemy//home/frederik/a -> //thutmose//home/frederik/a]
>>    Looking for changes
>>      Waiting for changes from server
>>    Reconciling changes
>>
>>    local          thutmose
>>    new file ---->            baz  [f] L   # list all changes
>>      new file ---->            baz
>>      new file ---->            foo
>>    new file ---->            baz  [f] 1   # match all changes propagating ->
>>      Enabling matching condition
>>    new file ---->            baz  [f] /   # skip matching files
>>    new file ---->            baz  [f] L   # foo is skipped, but not baz
>>      new file ---->            baz
>>
>> I just verified that I can apparently fix this by changing "rest" to
>> "ril" in "actOnMatching", but you might want to check with whoever
>> wrote that code (G.raud?) to make sure this is the right thing to do.
>> The new patch is number 3 here
>> https://github.com/navarum/tweaks/tree/master/unison/patches
>>
>> Thanks,
>>
>> Frederick
>>
>> On Fri, Jan 31, 2020 at 08:44:30PM -0500, Benjamin C. Pierce wrote:
>>> This does look like an improvement.  Would you mind packaging it as a pull request?
>>>
>>> Thank you!
>>>
>>>   - Benjamin
>>>
>>>> On Jan 29, 2020, at 8:22 PM, frederik at ofb.net wrote:
>>>>
>>>> I'm not sure if my emails are getting through here, but I created some patches to attempt to correct the UI behavior which I found confusing. I thought maybe I should share them in case they are useful:
>>>>
>>>> https://github.com/navarum/tweaks/tree/master/unison/patches
>>>>
>>>> The same repo contains a build script which I use to deploy Unison across different platforms. It builds a fixed version of Unison against a fixed version of OCaml. This makes it easier for me to run Unison between (say) Raspbian and Arch. Comments welcome.
>>>>
>>>> Best wishes,
>>>>
>>>> Frederick
>>>>
>>>> On Mon, Dec 16, 2019 at 02:15:34PM -0800, frederik at ofb.net wrote:
>>>>> Dear Unison hackers,
>>>>>
>>>>> I think I've mentioned this before, but often when using Unison I want to take a break from answering questions and just reconcile the changes that I've selected. For example in the following interaction
>>>>>
>>>>>  new file <==== new file   R/Makeconf  [f] <
>>>>>  new file <-?-> new file   asound.conf  [] s
>>>>>
>>>>>  Proceed with propagating updates? [] y
>>>>>
>>>>> I selected that R/Makeconf should be propagated in one direction. Then I perused the increasingly longer list of commands and found one that looks appropriate:
>>>>>
>>>>>  s                     stop reconciling and go to the proceed menu
>>>>>
>>>>> I'm not sure what the "proceed menu" is, but since I selected only one update I'm pretty sure that only one thing is going to happen when I "stop reconciling" and allow Unison to "proceed". However, when I hit "s" and "y" then Unison proceeds to copy a whole bunch of stuff that I didn't ask for, and I have to Ctrl-C, which doesn't even do anything, so then I have to Ctrl-Z Ctrl-C, but meanwhile a lot of files have been copied, generally making a mess that I have to spend time cleaning up. Here's a fuller summary: http://ix.io/24Dn
>>>>>
>>>>> By contrast, if I hit "/" at every prompt, to skip to the next item, then nothing is propagated.
>>>>>
>>>>> My questions: Is my use case somehow unusual? Where did I go wrong? Or is it OK for all users to have an experience like this when learning how to use your program?
>>>>>
>>>>> And what exactly does 's' do, and why doesn't it have a more accurate description in the UI?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Frederick
>>>>>
>>>> _______________________________________________
>>>> Unison-hackers mailing list
>>>> Unison-hackers at LISTS.SEAS.UPENN.EDU
>>>> https://LISTS.SEAS.UPENN.EDU/mailman/listinfo/unison-hackers
>>>
>>> _______________________________________________
>>> Unison-hackers mailing list
>>> Unison-hackers at LISTS.SEAS.UPENN.EDU
>>> https://LISTS.SEAS.UPENN.EDU/mailman/listinfo/unison-hackers
>>>
>> _______________________________________________
>> Unison-hackers mailing list
>> Unison-hackers at LISTS.SEAS.UPENN.EDU
>> https://LISTS.SEAS.UPENN.EDU/mailman/listinfo/unison-hackers
>

>_______________________________________________
>Unison-hackers mailing list
>Unison-hackers at LISTS.SEAS.UPENN.EDU
>https://LISTS.SEAS.UPENN.EDU/mailman/listinfo/unison-hackers



More information about the Unison-hackers mailing list