Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EGit » Problems with the Synchronize Workflow
Problems with the Synchronize Workflow [message #668186] Wed, 04 May 2011 11:43 Go to next message
Stefan Hansel is currently offline Stefan Hansel
Messages: 103
Registered: July 2009
Senior Member
I'm pretty new to EGit and try to adopt my Workflows to the new fancy DVCS world.

After having worked with EGit for about three weeks, I still feel not comfortable with the Synchronize Workflow.

Synchronizing is something I heavily do by the way to commit stuff. This is my personal quality assurance before every commit (i.e. looking that I didn't leave a System.out.println), so I never use the direct commit-command at all.
As this is the most used feature of EGit I'm using on a daily basis I'm very interested in streamlining this workflow.

So here is what I'm stumbling about:


  • when I choose 'Synchronize' an extra dialog opens, giving me the chance to choose my Synchronize target.
    As the destination I can choose between 'local branch', 'tags' and my remote repository seems to be listed as well.
    Unfortunately the remote repository is selected as the default, so I always have to change it to the local branch and hit 'OK'.
    This is three clicks (click combox, choose, click apply) to get into my most used Synchronize view and these clicks really annoy me most. This dialog also does not remember my last selection, which might reduce the pain. I also didn't find an option to change the default.

    Comparing with Mercurial Eclipse integration: They have two menu items: 'Synchronize With ...' and 'Synchronize', the latter one being the one I'd really need as this also omits an extra dialog.
    I wished EGit has the same. Am I the only one using the Synchronize view for local commits or am I doing something wrong?
  • Synchronize View: when I have reviewed my changes and am committing them, they are not removed from the Synchronize view. Knowing how CVS + Mercurial handle this, I find this unintuitive as well.
    I am used to a Synchronize view where I get less and less files when commiting step by step
  • Synchronize against remote location: here I guess I don't know much enough from GIT, but when I'm offline and choose the remote location, I get a synchronize view with a lot of changes. I don't know where there are coming from, these are definitely not the changes/commits/diff with my last Push as a baseline.
    So right now it shows me a lot of changes and I don't know what to do with them, nor how to interpret them.

    For some reason I expected this view to show me changes, that I didn't push yet (is there any other view to view these?)


I hope you can give me some advise on the points above!

By the way - I'm very happy to see a lot of progress between 0.11 and 0.12 - some other bugs that bothered are fixed now (like changing+saving stuff in the compare-editor of the Synchronize view).
Re: Problems with the Synchronize Workflow [message #668486 is a reply to message #668186] Thu, 05 May 2011 20:06 Go to previous messageGo to next message
Dariusz Luksza is currently offline Dariusz Luksza
Messages: 40
Registered: July 2010
Member

First of all I want to thank you Stefan for yours feedback!

I'm currently working on improving user experience in synchronization. I've recently open two bugs against such improvements (bug 344888 against sync-wizard improvements and 344891 for 'context' synchronization) feel free to drop some comments there. I've also implement ides described in those bugs, they are currently waiting in our code review system.

In case of synchronizing with remote location you need to download remote changes into yours local repository (or using git terminology 'fetch them') then you can launch synchronization whenever you want to. When you are synchronizing with remote branch I would suggest to try out 'Git Change Set' model where you can see changes organized in commits.

We already had hot discussion with model presentation should be activated by default and 'workspace model' won. Unfortunately this model represents flat structure of commits and "squash all changes into one", therefore it isn't best solution to use it for reviewing incoming changes IMHO

btw. Recently Benjamin Muskalla push patch that allows choose with model will be the default one, but AFAIK this change isn't included in 0.12 release.
Re: Problems with the Synchronize Workflow [message #668573 is a reply to message #668486] Fri, 06 May 2011 09:53 Go to previous messageGo to next message
Stefan Hansel is currently offline Stefan Hansel
Messages: 103
Registered: July 2009
Senior Member
Hi Dariusz,

I read about a 'Synchronize Workspace' menu option being in your review system and I guess this would help me alot (omitting the current Synchronize Dialog completely).
So I keep fingers crossed, that this will be reviewed in time!

Should I open a new bug/enhancement request, so that commited changes in the Synchronize View will be removed like with other team providers?

As to the Fetch/Pull ... looks like I do understand the implications now.
I never did an explicit fetch, but then I also worked alone so for some reason I expected Eclipse/Git would at least know 'everything' that I pushed already.
Does it make sense to provide a (default selected) option 'Fetch before synchronizing against remote' or a warning if someone forgot that?

Or is there any reasonable usecase that I should be able to synchronize against the remote without doing a fetch before.
If not then we should protect users like me from their own mistakes Very Happy
Re: Problems with the Synchronize Workflow [message #669589 is a reply to message #668573] Tue, 10 May 2011 20:41 Go to previous messageGo to next message
Dariusz Luksza is currently offline Dariusz Luksza
Messages: 40
Registered: July 2010
Member

Stefan Hansel wrote on Fri, 06 May 2011 05:53

Should I open a new bug/enhancement request, so that commited changes in the Synchronize View will be removed like with other team providers?


Yes, please. AFAIR such bug was not reported before.

Stefan Hansel wrote on Fri, 06 May 2011 05:53

As to the Fetch/Pull ... looks like I do understand the implications now.
I never did an explicit fetch, but then I also worked alone so for some reason I expected Eclipse/Git would at least know 'everything' that I pushed already.


If you are working alone on a single branch git knows what you already pushed, this is a 'normal' git feature.

Stefan Hansel wrote on Fri, 06 May 2011 05:53

Does it make sense to provide a (default selected) option 'Fetch before synchronizing against remote' or a warning if someone forgot that?

Or is there any reasonable usecase that I should be able to synchronize against the remote without doing a fetch before.
If not then we should protect users like me from their own mistakes Very Happy


Git is designed this way because it is useful! You don't need to have a internet or network connection to work with git (until you decide to push/pull/fetch changes to/from remote repository). This is useful when you are traveling or hot fixing bugs in customer office because you can commit everything into local repository or move into given point in repo history without network/vpn/etc... And basically I don't want to put limits on advanced users.

But from the second hand, I always work in my office where I always have network connection. Therefore I think that it is quite reasonable to launch fetch action before synchronization when:
* at least one of selected branches is remote branch
* or one of selected branch tracks remote branch
We should also provide configuration option for disabling this default behavior. And also EGit should inform you about this configuration option when you first time launch synchronization offline.

BTW. From my humble point of view there is no straight forward way from cvs/svn into git without learning. There is a new terminology connected with git, new workflows, new possibilities and new features! I've strongly recommend reading the ProGit book (progit.org/book/).
Re: Problems with the Synchronize Workflow [message #672359 is a reply to message #669589] Fri, 20 May 2011 19:32 Go to previous message
Stefan Hansel is currently offline Stefan Hansel
Messages: 103
Registered: July 2009
Senior Member
Dariusz Luksza wrote on Tue, 10 May 2011 16:41

BTW. From my humble point of view there is no straight forward way from cvs/svn into git without learning. There is a new terminology connected with git, new workflows, new possibilities and new features! I've strongly recommend reading the ProGit book (progit.org/book/).

I tend to agree, but:

I'm working in a medium sized company and we are on the move from CVS to GIT with all of our projects.
As much as I'd like to have anyone read books - this is not the reality.

So as far as we are concerned (and I guess a lot of enterprises and teams work the same) our 'introduction' strategy is to work the same as we did with CVS/SVN in the beginning.

So people start to learn the push/pull paradigm of course but everything else is like in the old world.
That's why it's so important to me, that the 'simple/beginner' workflows are not too complicated and resemble the old world as much as possible, because as the CTO I'm not allowed to slow down teams too much, just because we change our versioning strategy.

Only after this initial move some people start to read books/tutorials and dive into all the other new possibilities and the team/company starts to learn from those who are more interested in new stuff than others Smile
But this is a slow process - maybe taking a full year ... and I cannot leave those behind, that don't start to read the manual.

I'll be opening some enhancement requests now Smile
Previous Topic:Project from local bare repository
Next Topic:Newbie "how to": Preview incoming changes like cvs/svn Synchronize
Goto Forum:
  


Current Time: Sat Oct 25 14:47:39 GMT 2014

Powered by FUDForum. Page generated in 0.02922 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software