Announcement

Collapse
No announcement yet.

Replacements not propagated to multiple tabs

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Replacements not propagated to multiple tabs

    Consider this scenario, where I am using Visual Studio, Perforce, and Beyond Compare 3:

    Refactor some code in a project, renaming foo() to bar().
    Assume 5 files are affected by this change.
    Launch a changelist diff from source control.
    BC3 opens the 5 files, each in its own tab, in a blank/temporary file comparison session.
    Open Rules | Replacements | New in any of the tabs.
    Enter foo() for find and bar() for replace.
    From the dropdown, select "Also update session defaults".
    Press OK.

    I expect all 5 tabs to receive the same replacements. Instead, only the active tab is affected. Selecting "Use for this view only" does not change this behavior.

    To make replacements really useful in this common scenario, please consider propagating the replacements to the other tabs.

    Thanks,
    Kevin Sikes

  • #2
    Since replacements are session-based, and each view in your example is a unique session for a different file, it would not make sense to apply the replacements to every session. However, it seems like a reasonable request to add an option to the Session Settings context dropdown:
    Use for this view only
    Use for all open views (text compare only)
    Also update session defaults
    BC v4.0.7 build 19761
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    Comment


    • #3
      Hi Kevin,

      Session defaults only affect new sessions. Open only one of the comparisons, change the replacements, update the defaults, and then open the other 4 comparisons.
      Erik Scooter Software

      Comment


      • #4
        Originally posted by Erik
        Session defaults only affect new sessions. Open only one of the comparisons, change the replacements, update the defaults, and then open the other 4 comparisons.
        ...which is why it would be nice to have an option to apply a change to all open sessions of the same file type...

        For one thing, a user might want to apply the same settings to multiple sessions without making it their session defaults.

        For another, if a user does want to update their session defaults, at least they could repeat the step to also update their current active sessions.
        BC v4.0.7 build 19761
        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

        Comment


        • #5
          Originally posted by Erik
          Hi Kevin,

          Session defaults only affect new sessions. Open only one of the comparisons, change the replacements, update the defaults, and then open the other 4 comparisons.
          Hello Erik,

          Thanks for your response. I don't want to change the session defaults -- I'm sure you'll agree that would get unwieldy very quickly. Once a changelist diff is done, it is doubtful a user would want a foo() -> bar() replacement hanging around in their default session replacements. It would be nice to have a temporary set of replacements that are used across a set of files that are opened together as tabs.

          Thanks,
          Kevin Sikes

          Comment


          • #6
            Now that BC 3.2 is on the horizon I would really like to revisit this issue. I got no response from my last post (nearly 2 years ago!) that changing the session defaults is a poor workaround for the common task of diffing files in a changelist. There really ought to be a way to propagate temporary replacements to all open tabs without modifying session defaults.

            Comment


            • #7
              Hello Kevin,

              This isn't one of the BC 3.2 beta features, but it is something we are definitely looking into. The design and implementation of this is not easy and would require a basic re-working on how session settings and file formats are handled.
              Aaron P Scooter Software

              Comment

              Working...
              X
              😀
              🥰
              🤢
              😎
              😡
              👍
              👎