Assembla home | Assembla project page
 

Ticket #10 (assigned defect)

Opened 4 months ago

Last modified 2 months ago

Synchronize seems to ignore the current workspace branch

Reported by: anonymous Assigned to: bastiand (accepted)
Priority: high Milestone: 1.2
Component: mercurialeclipse Version: 1.0
Severity: normal Keywords:
Cc:

Description

If I understand it correctly, synchronize should compare changes in the current workspace, changes in your local repository and changes in the remote repository and show in a file list view.

1) what files (in changesets) would change in your workspace if you pulled and updated (incoming) 2) what files (in changesets) would you send to the remote repository if you committed and pushed (outgoing) 3) and what files are changed in your workspace AND in an incoming changeset (conflict)

The problem in the current plugin is that it seems to be ignoring the branch you are currently working on so it seems to be comparing what is in your workspace against all changes in all branches (or maybe it is just comparing against default, not sure which yet).

The result is that you see incoming changes that seem to bear no relationship to your workspace as they are incoming for another branch.

We are working in a multi-named branch environment where we have a number of named release branches (maybe 8 active and about 10 other older ones). The results of a synchronize are not very useful as it lists many unrelated changes from other branches.

Attachments

Change History

07/22/08 16:37:33 changed by bastiand

Did you try to specify the branch when synchronizing a repo aka http://uuu.com/repo#branchname?

07/22/08 16:37:42 changed by bastiand

  • owner set to bastiand.
  • status changed from new to assigned.

07/24/08 20:56:48 changed by bastiand

  • version set to 1.0.

08/06/08 17:31:22 changed by chyssler

I also think that synchronize should only show add/mod/remove or at least highlight only relevant changesets happening on current the branch of the local repository.

08/07/08 20:22:50 changed by bastiand

Hi,

I could reproduce this :-). And I tried to fix it. Unfortunately, this seems to require a rewrite of the comparison/subscriber stuff, so it could take a while, as this is not trivial.

08/08/08 08:23:58 changed by chyssler

On a site note, I just found out that MAR can be retrieved using "hg status --rev $base --rev $cmp"

So can this be used for incoming?

hg branch => get current branch hg log without bundle => get max revision of my repository on branch hg log with bundle laying ontop => get log

Then maybe filter logs on branch to find highest revisions for that branch then do "hg status --rev $my --rev $maxincoming" with bundle laying ontop

Them similary for outgoing

hg outgoing => find outgoing changesets and do a hg status with hg st --rev $(minoutgoing.parent) --rev $(tip)"

If so, then it should be safe to only fetch FileStatus? lazily on demand?

08/13/08 16:45:55 changed by bastiand

  • priority changed from normal to high.

08/13/08 16:47:49 changed by bastiand

I'm now trying to tackle this and fix ticket #36 as well.

08/13/08 22:57:10 changed by bastiand

okay, I've pushed some stuff to my bitbucket repository. It doesn't display changes correctly though - currently I dunno why, as debugging shows, I'm giving the right status (e.g. INCOMING | CHANGE).

The sync is branch-aware though! So if you want to try it, feel free to do that :-).

08/26/08 16:55:26 changed by bastiand

this seems to work now if the branch against which should be synchronized is given in the repository combo when creating the synchronization.

08/26/08 16:55:45 changed by bastiand

@brian: please test it :-).

09/13/08 18:39:43 changed by zingo

Can we close this one?


Add/Change #10 (Synchronize seems to ignore the current workspace branch)