P3D3::Choices in dialog box not "sticking"

Issue #256 resolved
richard_liu created an issue

I am using MacHg 0.9.23 on a Mac Pro. In the navigation pane I have two repository groups, LOCAL REPOSITORIES and REPOSITORIES ON MACBOOK PRO. Each repository group contains seven repositories. Since the Mac Pro is much faster than the MacBook Pro, I almost always work on it, then regularly pull-with-update the local repositories to their counterparts on the MacBook Pro in MacHg running on the Mac Pro. I.e., I select a repository in the group REPOSITORIES ON MACBOOK PRO, click the Pull icon, verify Source, Destination and Advanced Options (incl. Update After Pull), then click the Pull button. My problem is with one pair of repositories. I click on Documents (MacBook Pro) then click the Pull button. The Source is wrong: A drop down list appear with REPOSITORIES ON MACBOOK PRO the only choice, so I click Allow Pull From Any Repository, and immediately Documents (from LOCAL REPOSITORY) appears and Update After Pull is checked, just as was always the case before the last release of MacHg. So I click Pull, and, for "good luck" I do a File Save after the pull finishes. However, the next time I work with this pair, Allow Pull from Any Repository is again not checked. This seems to be a bug in the UI.

Comments (14)

  1. richard_liu reporter

    Jason,

    Sorry for the delayed reply. The requested screen shots are in the accompanying .zip. They are numbered in the intended viewing order. After clicking OK in step 5 I immediately selected Pull to the same repository. Notice how, once again, Allow Pull From Any Repository is not selected. Strangely, checking this option is all that is required for MacHg to "remember" the correct source repository and the desired Update After Pull (Step 4), I don't have to specify them.

    In previous versions I just had to save the "document" to solve this kind of problem. Since Allow Pulling From Any Repository is immediately forgotten after pulling, saving the document does no good.

    Regards, Richard

  2. Jason Harris repo owner

    Ahhh... This is regrettable but the intended behavior at the moment. In the newer versions of MacHg there were a good number of improvements to the push / pull / incoming / outgoing sheets. Basically the order of the menus now reflects the order in the sidebar.

    One thing that did change was the previous elaborate system of remembering the thing which was last pushed / pulled to and using that when opening the sheet. Now the sheet which is used is the first compatible repository. See:

    http://jasonfharris.com/machg/MacHgHelp/pgs/AboutRepositoryIdentities.html

    This give a much more direct map between the sidebar mental model and what is used.

    So in your case, is it possible that you can change things so that both repositories are based off the same repository? In fact what does

    hg identify --rev 0 <repository>

    yield when run on both repositories? If they are different, that at some stage can you do a physical copy of one repository from one place to the other? (Be careful here!) So they really have the same base history info. Then you wont't need to do force push / pull all the time. Really the force push / pull are intended for exceptional cases not everyday functioning.

    Still I'll keep this on the books and make sure I handle this correctly.

    Thanks, Jas

  3. richard_liu reporter

    Jason,

    I'm not sure I understand. That MacHg "guesses" wrong the first time is OK, but after I go through the trouble of checking Allow Pull From Any Repository and then set the repository and the other options the way I want them, I don't understand why I must do that every time. Surely, there must be a way to avoid having to do that every time within the same session, and to persist it from session to session?

    Regards, Richard

  4. Jason Harris repo owner

    Lets start with what is the output of:

    hg identify --rev 0 <repository>

    on both repositories?

    Then I'll look at why the caching isn't firing like maybe it should...

    Thanks, Jas

  5. Jason Harris repo owner

    So... these really are different repositories. Could you make them different copies of the same repository? Then test to see if the caching of the previous push is working... It should be...

    Cheers, Jas

  6. Jason Harris repo owner

    So... these really are different repositories. Could you make them different copies of the same repository? Then test to see if the caching of the previous push is working... It should be...

    Cheers, Jas

  7. richard_liu reporter

    Jason,

    I did the following: Since the repository in question is Documents and I cannot delete it, I cloned the Documents repository on the MacBook Pro to Synchronized Documents in Documents on the Mac Pro. On the MacBook Pro I then deleted in Documents everything that was under the control of Mercurial, then cloned the Synchronized Documents on the Mac Pro to a Synchronized Documents sub-folder in Documents on the MacBook Pro.

    Now, besides these two groups of repositories, I am synchronizing with a third group, which are physically on a volume that is regularly backed up centrally. So I deleted the Documents folder there and cloned the Synchronized Documents on the Mac Pro to it.

    I have verified that the 0 node for all three repositories is the same. But when, in MacHg running on the Mac Pro I highlight Documents (MacBook Pro), which now really refers to Documents/Synchronized Documents on the MacBook Pro, then try to Pull from Documents on the Mac Pro, the wrong repository, Documents (Backup), appears as the default choice, and, when I check Allow Pulling From Any Repository, the right one does not!!!

    I tried the same pull operation from the MacBook Pro, and MacHg is now pulling 343 change sets!!! I can't imagine what it's doing, since the source and the target are clones of one another! Something is awfully messed up.

  8. richard_liu reporter

    Jason,

    I just noticed that Documents in LOCAL REPOSITORIES and Documents in REPOSITORIES ON MACBOOK PRO were in fact pointing to the same folder, and on the MacBook Pro I can't swear I didn't leave the Force Pull option checked when I pulled. The options now seem to stick.

    Thanks, Richard

  9. Jason Harris repo owner

    So just to get this straight, now that you have the same base repository in the various locations, the push / pull / incoming / outgoing options are sticking right? If so then things are working like they should... and we can go ahead and close this report...

    Cheers, Jas

  10. Log in to comment