ANN: SmartGit/Hg 6 preview

classic Classic list List threaded Threaded
50 messages Options
123
Reply | Threaded
Open this post in threaded view
|

ANN: SmartGit/Hg 6 preview

syntevo Support
The first public preview build for the upcoming SmartGit/Hg version 6
is available. The most important changes are:

- Completely reworked repository management
- Background fetch and refresh
- Distributed Code Review similar to the existing GitHub integration,
   but without the need for GitHub
- Markdown support for GitHub integration and Distributed Code Review

You are welcome to give it a try!

Download:
<http://www.syntevo.com/smartgithg/early-access>

Detailed change log:
<http://www.syntevo.com/smartgithg/changelog-eap.txt>

--
Best regards,
Thomas Singer
=============
syntevo GmbH
http://www.syntevo.com
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
First glance, option to remove the folder path from "closed repos".

I personally know where all my repos are. Having the path in their names just makes the list look extremely messy.
It also has the horrible side effect of making the project window have a horizontal scroll bar. Again a pet peeve.

Option to set all newly cloned/added repos as Favorite by default. (Is there a way to remove the Star next to the repo name?).

I like the red/green arrow icons on the repos. Unexpected and very nice. (Maybe a little star or mark on the icon to show favorite?)

The interface seems slow. It's like the repos keep going between an open and close state as I move from repo to repo.
I want to keep all repos open ALL the time. Every time I change repo I am presented with a blank branches panel for a few seconds and then "master ? origin" by all my local branches and then after about 30 seconds its now ready to use.

This is very time consuming. I am guessing the "background updating" of all my projects as I have had to select them all as favorites to keep them all up to date, if you are using just a single queue system it may be waiting for them to finish. It may be better to have a "user doing something" network queue and "background updating" network queue. I've currently had to wait 40... 50 seconds for a simple Push to even ask "what branches do I wish to push"..  I currently have 75 repos added "as favorites".

Ctrl+Shift+Selection within the list is acting like Ctrl+Selection.
Expected behavior is to act like Ctrl+Shift+Selection from lists in other applications.
Eg:
Select 1, Shift+Select 3. [This selects 1-3]
Ctrl+Select 5, Ctrl+Shift+Select 7. [This should select 5-7, giving you 1-3, 5-7]

I like the change from "switch to branch" to "checkout branch". (This will annoy one of my co-workers, but it puts a smile on my face). New Deletion of a branch (asking if you wish to delete tracked (and optionally remote)) I think is a very good addition. Suggestion, change "delete from remote" to "delete from {tracked remote name}".. So "Delete from 'origin'" for example.

Interface very slow to update. I created a new branch 'b', rightclicked > set tracked branch > selected 'origin/master'. It taken 10-15 seconds for the interface to update to 'b <1 origin/master'.

Feature Request: Branches panel, Be able to rightclick on a tag and check out. (Obviously this will still checkout the commit, bit still easier to roll back).

Feature Request: Select a Submodule repo root and select Discard, if the repo sha has changed, ask what you would like to do the discard on. "The super repo" or "Submodule" (Identically is if you were staging/commiting something). But this would allow you to reset the Submodule back to its last commit. I know this can be done by going to the Submodules parent folder and selecting the Submodule within as if it was a File to reset. Just seems more intuitive to be able to do it by selecting the submodule itself and pressing discard.

- Colin.

PS: I am sorry this is so lengthy.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

syntevo Support
Hi Colin,

Thanks for the quick test and feedback.

> First glance, option to remove the folder path from "closed repos".
>
> I personally know where all my repos are. Having the path in their names
> just makes the list look extremely messy.

OK.

> Option to set all newly cloned/added repos as Favorite by default. (Is there
> a way to remove the Star next to the repo name?).

Our intention is to have only a few repositories marked as favorite.

> I want to keep all repos open ALL the time.

Please explain why you want to do that. Scanning all 75 repositories is memory and time consuming.

> It may be better to have a "user doing something"
> network queue and "background updating" network queue.

What do you mean?

> annoy one of my co-workers, but it puts a smile on my face). New Deletion of
> a branch (asking if you wish to delete tracked (and optionally remote)) I
> think is a very good addition. Suggestion, change "delete from remote" to
> "delete from {tracked remote name}".. So "Delete from 'origin'" for example.

OK.

> Feature Request: Branches panel, Be able to rightclick on a tag and check
> out. (Obviously this will still checkout the commit, bit still easier to
> roll back).

Already in our issue tracker (SG-3759).

> Feature Request: Select a Submodule repo root and select Discard, if the
> repo sha has changed, ask what you would like to do the discard on. "The
> super repo" or "Submodule" (Identically is if you were staging/commiting
> something).

Should work now: either select the submodule root in the directory structure (operates on the nested repository) or the submodule "file" entry (works on the outer repository to update the "link").

--
Best regards,
Thomas Singer
syntevo GmbH
http://www.syntevo.com
http://blog.syntevo.com


03/04/2014 16:20 - WORMSS wrote:

> First glance, option to remove the folder path from "closed repos".
>
> I personally know where all my repos are. Having the path in their names
> just makes the list look extremely messy.
> It also has the horrible side effect of making the project window have a
> horizontal scroll bar. Again a pet peeve.
>
> Option to set all newly cloned/added repos as Favorite by default. (Is there
> a way to remove the Star next to the repo name?).
>
> I like the red/green arrow icons on the repos. Unexpected and very nice.
> (Maybe a little star or mark on the icon to show favorite?)
>
> The interface seems slow. It's like the repos keep going between an open and
> close state as I move from repo to repo.
> I want to keep all repos open ALL the time. Every time I change repo I am
> presented with a blank branches panel for a few seconds and then "master ?
> origin" by all my local branches and then after about 30 seconds its now
> ready to use.
>
> This is very time consuming. I am guessing the "background updating" of all
> my projects as I have had to select them all as favorites to keep them all
> up to date, if you are using just a single queue system it may be waiting
> for them to finish. It may be better to have a "user doing something"
> network queue and "background updating" network queue. I've currently had to
> wait 40... 50 seconds for a simple Push to even ask "what branches do I wish
> to push"..  I currently have 75 repos added "as favorites".
>
> Ctrl+Shift+Selection within the list is acting like Ctrl+Selection.
> Expected behavior is to act like Ctrl+Shift+Selection from lists in other
> applications.
> Eg:
> Select 1, Shift+Select 3. [This selects 1-3]
> Ctrl+Select 5, Ctrl+Shift+Select 7. [This should select 5-7, giving you 1-3,
> 5-7]
>
> I like the change from "switch to branch" to "checkout branch". (This will
> annoy one of my co-workers, but it puts a smile on my face). New Deletion of
> a branch (asking if you wish to delete tracked (and optionally remote)) I
> think is a very good addition. Suggestion, change "delete from remote" to
> "delete from {tracked remote name}".. So "Delete from 'origin'" for example.
>
> Interface very slow to update. I created a new branch 'b', rightclicked >
> set tracked branch > selected 'origin/master'. It taken 10-15 seconds for
> the interface to update to 'b <1 origin/master'.
>
> Feature Request: Branches panel, Be able to rightclick on a tag and check
> out. (Obviously this will still checkout the commit, bit still easier to
> roll back).
>
> Feature Request: Select a Submodule repo root and select Discard, if the
> repo sha has changed, ask what you would like to do the discard on. "The
> super repo" or "Submodule" (Identically is if you were staging/commiting
> something). But this would allow you to reset the Submodule back to its last
> commit. I know this can be done by going to the Submodules parent folder and
> selecting the Submodule within as if it was a File to reset. Just seems more
> intuitive to be able to do it by selecting the submodule itself and pressing
> discard.
>
> - Colin.
>
> PS: I am sorry this is so lengthy.
>
>
>
> --
> View this message in context:
> http://smartgit.3668570.n2.nabble.com/ANN-SmartGit-Hg-6-preview-tp7574691p7574693.html
> Sent from the SmartGit mailing list archive at Nabble.com.
>
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
>> I want to keep all repos open ALL the time.

> Please explain why you want to do that. Scanning all 75 repositories is memory and time consuming.

Because its much quicker. I know there is a Startup penalty when starting up all SG 5 since it has all these repos at once. This is usually about 20-30 seconds. But once they are open, I can switch from 1 to another to another and the interface updates in sub-second.

In 6, I change from 1 repo, wait anywhere from 5 to 40 seconds for the interface to update. Do 1 or 2 things that take about 10 seconds. And then switch to another repo, I then have to wait 5-40 seconds.. If I do this on 5 repos, I have already exceeded the time it taken to open them at Startup.

>> It may be better to have a "user doing something"
>> network queue and "background updating" network queue.

> What do you mean?

I have started to suspect all these lengthy time it takes to update the interface is all because I have repos doing background updating almost constantly. Might be easier to have interrupt what ever background "fetch" that is going on, have the user interaction be processed, (either UI update or user initiated push/pull/delete), give it about 5 seconds and then start the background fetching again.

- Colin.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

syntevo Support
> >> I want to keep all repos open ALL the time.
>
> > Please explain why you want to do that. Scanning all 75 repositories is
> > memory and time consuming.
>
> Because its much quicker. I know there is a Startup penalty when starting up
> all SG 5 since it has all these repos at once. This is usually about 20-30
> seconds. But once they are open, I can switch from 1 to another to another
> and the interface updates in sub-second.

If you have opened a repository for the first time, closing and reopening it a second should be a lot quicker, provided that file system data is still in the OS file system cache.

For small repositories, this should take only a few seconds, I guess. That should be acceptable even when switching repositories really often (how often do you actually do that)?

For large repositories, it might take somewhat longer, however you anyway won't be able to have 70 large projects permanently loaded in SmartGit's heap (not even with -Xmx1500, I guess).

And why would you need to switch between projects so frequently? Do you really want to see the local changes, need to sort and filter the table? Or is it about performing certain commands, like Commit/Push/Pull? To invoke these commands, the projects not necessary have to be loaded.

> I have started to suspect all these lengthy time it takes to update the
> interface is all because I have repos doing background updating almost
> constantly. Might be easier to have interrupt what ever background "fetch"
> that is going on, have the user interaction be processed, (either UI update
> or user initiated push/pull/delete), give it about 5 seconds and then start
> the background fetching again.

SmartGit will only fetch projects which are currently not open to avoid such locks. Hence, if you can reduce the overall switching between projects, this problem would become less pressing. However, I agree, if you need to switch a project and SmartGit has started to fetch a large amount of changes immediately before, having to wait here will be annoying. Unfortunately, it's not so easy to stop a "git fetch", as just discussed in another thread. Especially, we didn't get a rock-solid confirmation that killing a "git fetch" is definitely safe (though it seems to be very likely):

http://stackoverflow.com/q/10487322/241453

I think we need to contemplate about this somewhat more to finally decide whether we'd use this approach. I would deeply regret this decision if some time later people start complaining that SmartGit has corrupted their repository.

Maybe an option to simply turn off background fetch would be the better approach?

--
Best regards,
Marc Strapetz
syntevo GmbH
http://www.syntevo.com
http://blog.syntevo.com


03/04/2014 17:40 - WORMSS wrote:

> >> I want to keep all repos open ALL the time.
>
> > Please explain why you want to do that. Scanning all 75 repositories is
> > memory and time consuming.
>
> Because its much quicker. I know there is a Startup penalty when starting up
> all SG 5 since it has all these repos at once. This is usually about 20-30
> seconds. But once they are open, I can switch from 1 to another to another
> and the interface updates in sub-second.
>
> In 6, I change from 1 repo, wait anywhere from 5 to 40 seconds for the
> interface to update. Do 1 or 2 things that take about 10 seconds. And then
> switch to another repo, I then have to wait 5-40 seconds.. If I do this on 5
> repos, I have already exceeded the time it taken to open them at Startup.
>
> >> It may be better to have a "user doing something"
> >> network queue and "background updating" network queue.
>
> > What do you mean?
>
> I have started to suspect all these lengthy time it takes to update the
> interface is all because I have repos doing background updating almost
> constantly. Might be easier to have interrupt what ever background "fetch"
> that is going on, have the user interaction be processed, (either UI update
> or user initiated push/pull/delete), give it about 5 seconds and then start
> the background fetching again.
>
> - Colin.
>
>
>
> --
> View this message in context:
> http://smartgit.3668570.n2.nabble.com/ANN-SmartGit-Hg-6-preview-tp7574691p7574698.html
> Sent from the SmartGit mailing list archive at Nabble.com.
>
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
We have 75 Games, that all need similar but not exact bug Fixes. Each game is ever so slightly different.
What the usual day involves is going into a game, opening the log, Searching for a Bug Fix id (usually not the case) So I then look for certain Lines changing and using blame for when then change, Marking down the SHA and then moving on to the next repo. Sometimes it involves making Tags or a Merging, (but those tend to be very rare).

This is why the auto fetching is very good for me, since usually do a Fetch of ALL repos at the start by doing a fetch on the project root (in SG5) and wait 2-5 minutes. But by the time I get to the bottom I may be on old information. With it being background updating I know I have the most uptodate info by the time I get to the bottom of the repo list. But the switching delay is just causing other delays.

I doubt this would be much of a problem for my co-workers who tend to work on the same project for 1-2 weeks. I guess I just have slightly different Needs. I wouldn't mind having a Checkbox within options that says "Interupt Fetches on User Interaction".. Even having 1 or 2 confirmation popups saying how dangerous this can be... It would just be like the "allow force push".
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
I noticed yesterday that I couldn't reorder any of the repos within the groups. This didn't bother me, since they were in Alphabetical order and that was the order I had the games in the groups in SG5. But I have just added another new repo. This one starts with an L, and if I drag it into group "Other" it goes in between G and M, ask expected in Alphabetical order. I place it within "Flash_Repos" it goes between B and another L. As expected in alphabetical order..

But when I have it placed within the group I need it in "HTML5_Repos", It goes Last... So it is going X then L.

I don't know what is different from this group to the other two expect this is the one that has the most repos in. Everything else is in Alphabetical order, except this new one.


Okay.. I just noticed, Its because I had to mark is as Favorite.... It taken me a while to work that out though..
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
In reply to this post by WORMSS
Bug: "Reveal in Explorer" and other commands are grayed out unless the repo is open.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
Bug: One of the repos is constantly spinning, doing a Fetch, Though I have looked on Github and noone has made a chance in that repo for atleast 3 days so I know I've got the latest info from there already. But because its just constantly spinning my entire interface is locked up.. (This is what has prompted me to see the bugs I listed above).

I cannot open another repo, I cannot open a new window in a new window as that one still shows the bugged repo as "fetching".. I tried opening that repo, (as you said earlier it doesn't fetch on open repos)..

Been over 10 minutes now and still going.. I am going to exit SG6.

"Temporary directories not removed correctly.
Following temporary directories from a previous run might not have been removed properly:
C:\Users\Colin\AppData\Local\Temp\e4j2C5E.tmp_dir1393941164
C:\Users\Colin\AppData\Local\Temp\smartgit4584752292882785056tmp

Please verify that they don't contain any important file before deleting them!

Delete Recursively"

- Colin.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
Actually... thinking about it.. The most use-case for this "auto fetching" for all my co-workers is actually NEEDING to fetch on their open projects.. To be told there are new commits to merge as they are working otherwise they will not have the latest code.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

syntevo Support
In reply to this post by WORMSS
> Bug: One of the repos is constantly spinning, doing a Fetch, Though I have
> looked on Github and noone has made a chance in that repo for atleast 3 days
> so I know I've got the latest info from there already. But because its just
> constantly spinning my entire interface is locked up.. (This is what has
> prompted me to see the bugs I listed above).

Does log.txt indicate any exceptions or problems?

> I cannot open another repo, I cannot open a new window in a new window as
> that one still shows the bugged repo as "fetching"..

It should be possible to open another (non fetching) repository. I will try to reproduce that. Again, log.txt might be helpful to understand what was going on. Please send to [hidden email].

> I tried opening that repo,(as you said earlier it doesn't fetch on open repos)..

It won't start to fetch an already opened repository, however when you are trying to open a currently fetching repository, all other operations will be locked.

--
Best regards,
Marc Strapetz
syntevo GmbH
http://www.syntevo.com
http://blog.syntevo.com


03/05/2014 11:40 - WORMSS wrote:

> Bug: One of the repos is constantly spinning, doing a Fetch, Though I have
> looked on Github and noone has made a chance in that repo for atleast 3 days
> so I know I've got the latest info from there already. But because its just
> constantly spinning my entire interface is locked up.. (This is what has
> prompted me to see the bugs I listed above).
>
> I cannot open another repo, I cannot open a new window in a new window as
> that one still shows the bugged repo as "fetching".. I tried opening that
> repo, (as you said earlier it doesn't fetch on open repos)..
>
> Been over 10 minutes now and still going.. I am going to exit SG6.
>
> "Temporary directories not removed correctly.
> Following temporary directories from a previous run might not have been
> removed properly:
> C:\Users\Colin\AppData\Local\Temp\e4j2C5E.tmp_dir1393941164
> C:\Users\Colin\AppData\Local\Temp\smartgit4584752292882785056tmp
>
> Please verify that they don't contain any important file before deleting
> them!
>
> Delete Recursively"
>
> - Colin.
>
>
>
> --
> View this message in context:
> http://smartgit.3668570.n2.nabble.com/ANN-SmartGit-Hg-6-preview-tp7574691p7574705.html
> Sent from the SmartGit mailing list archive at Nabble.com.
>
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
In reply to this post by WORMSS
>> Actually... thinking about it.. The most use-case for this "auto fetching"
>> for all my co-workers is actually NEEDING to fetch on their open projects..
>> To be told there are new commits to merge as they are working otherwise they
>> will not have the latest code.

> I definitely agree, however then we run into either of these problems:

Would it be possible to do a "git ls-remote" instead for open repos? This could retrieve all the remote references and do some git-kung-fu to know if the remote is head or behind without actually having to do the whole fetch?
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
SG 6 doesn't notice a repo is missing from the file system anymore. It used to spot it almost instantly in SG 5 and before.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

syntevo Support
Should work in SG 6 like it did in SG 5: you should get a dialog when
you open the repository/project.

--
Best regards,
Thomas Singer
=============
syntevo GmbH
http://www.syntevo.com
http://blog.syntevo.com


On 05.03.2014 14:55, WORMSS wrote:
> SG 6 doesn't notice a repo is missing from the file system anymore. It used
> to spot it almost instantly in SG 5 and before.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
Oh, I didn't try and open the project.. Since I knew I deleted it, trying to open it seemed counter intuitive. I just expected it to change to <missing>.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
Bug: If I select the "Group root", and click "Pull > Fetch".. It only does the fetch on 1 repo.
Previously it would fetch on all the repos. I have un-favorited all the repos to get the responsiveness back and bypass this UI locking up. I thought going back to my old way of doing a Mass Fetch might be best, and it seems now I can't do that either.
Reply | Threaded
Open this post in threaded view
|

RE: ANN: SmartGit/Hg 6 preview

Jon Behr
Download link does not work for me...
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

syntevo Support
In reply to this post by WORMSS
Strange, for me any toolbar command buttons, including Pull, are
disabled when (only) a group is selected.

--
Best regards,
Thomas Singer
=============
syntevo GmbH
http://www.syntevo.com
http://blog.syntevo.com


On 06.03.2014 10:15, WORMSS wrote:
> Bug: If I select the "Group root", and click "Pull > Fetch".. It only does
> the fetch on 1 repo.
> Previously it would fetch on all the repos. I have un-favorited all the
> repos to get the responsiveness back and bypass this UI locking up. I
> thought going back to my old way of doing a Mass Fetch might be best, and it
> seems now I can't do that either.
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

syntevo Support
In reply to this post by WORMSS
> >> Actually... thinking about it.. The most use-case for this "auto fetching"
> >> for all my co-workers is actually NEEDING to fetch on their open
> >> projects..
> >> To be told there are new commits to merge as they are working otherwise
> >> they
> >> will not have the latest code.
>
> > I definitely agree, however then we run into either of these problems:
>
> Would it be possible to do a "git ls-remote" instead for open repos? This
> could retrieve all the remote references and do some git-kung-fu to know if
> the remote is head or behind without actually having to do the whole fetch?

Good point, I'm pretty sure "git ls-remote" is read-only but will check.

What we definitely want to do is to run the fetch for currently open repositories in "foreground" if SmartGit itself is in background, similar as we already do for "git gc". Would that work for your colleagues?

--
Best regards,
Marc Strapetz
syntevo GmbH
http://www.syntevo.com
http://blog.syntevo.com


03/05/2014 17:20 - WORMSS wrote:

> >> Actually... thinking about it.. The most use-case for this "auto fetching"
> >> for all my co-workers is actually NEEDING to fetch on their open
> >> projects..
> >> To be told there are new commits to merge as they are working otherwise
> >> they
> >> will not have the latest code.
>
> > I definitely agree, however then we run into either of these problems:
>
> Would it be possible to do a "git ls-remote" instead for open repos? This
> could retrieve all the remote references and do some git-kung-fu to know if
> the remote is head or behind without actually having to do the whole fetch?
>
>
>
> --
> View this message in context:
> http://smartgit.3668570.n2.nabble.com/ANN-SmartGit-Hg-6-preview-tp7574691p7574707.html
> Sent from the SmartGit mailing list archive at Nabble.com.
>
Reply | Threaded
Open this post in threaded view
|

Re: ANN: SmartGit/Hg 6 preview

WORMSS
I think it would.. Only reason I asked about ls-remote is so there would be no changing around with heads and such as you mentioned.. I thought a "Something is different" check, would work in that case, no need to worry about git corruption and things updating when the user wasn't expecting it to be.

123