topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Tuesday March 19, 2024, 1:48 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: DVCS ? (All about Git, Mercurial-Hg and the like...)  (Read 130435 times)

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #50 on: May 16, 2011, 11:12 PM »
A peripheral SmartGit remark:

It does miss some other important ones though, like “blame”, “stash”, “clone –bare” (last one : surprising, to say the least… Unless I missed something).

FWIW, it looks like there is some kind of stash support (at least in the 2.x series):

smartgit-local-menu-stash-items.pngDVCS ? (All about Git, Mercurial-Hg and the like...)


Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #51 on: May 17, 2011, 07:54 AM »
You're right! I actually discovered the stashing capabilities after writing what I wrote and forgot to edit it. I'll do that now. Thanks ewemoa.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #52 on: May 18, 2011, 06:32 AM »
Another SmartGit bit (no, I have no relationship with the product or company :) )...

1- some kind of optional “console like” textual feedback, some commands log view, like the one Git extensions provides (see #4). That would be good (maybe is that a secretly available option but… I didn’t find it).
Not quite what you may have been looking for, but if you look in the .settings directory, there is a file named "log.txt" which contains various details.  Perhaps better than nothing...

From the online docs there was this general info:

log.txt contains debug log information. It's configured via log4j.properties.

From a SmartGit support list: GIT commands sent by SmartGit:

Is it possible or configurable to view the Git commands executed by SmartGit somewhere? It would be awesome if they were displayed in the status bar or a console popup.

You can find the executed Git commands (and the output of the Git command) in SmartGit's log.txt.
« Last Edit: May 18, 2011, 06:34 AM by ewemoa »

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #53 on: May 18, 2011, 09:26 AM »
Thanks ! Cool. Yes, this is certainly better than nothing (in Git Extensions, all commands are apparent so it is very transparent)... and I should've looked for a log file. Bad me.

From your post, this says it all :
It would be awesome if they were displayed in the status bar or a console popup.

This is a bit too well hidden IMO (even the mention of that log in the online docs!).
My log file is in not in the .setting directory but in \Application Data\syntevo\SmartGit\2.


Anyway... considering all that, SmartGit is probably what I'll try to use more in the next week.


ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #54 on: May 18, 2011, 10:35 PM »
My log file is in not in the .setting directory but in \Application Data\syntevo\SmartGit\2.
Ah, my bad...Perhaps it's in .settings for me because I'm using the portable version.

Anyway... considering all that, SmartGit is probably what I'll try to use more in the next week.
Looking forward to any observations :)

BTW, I wanted to search the history of a project via the log window and was stumped initially.  I learned that "search as you type" (they call this speed-search apparently) seems to work.  Was this obvious to you?  I didn't find this in the docs...it was again via a posting to that support list.

Then I spent a while trying to figure out how to search for subsequent occurrences -- finally after trying a variety of combinations, I hit on using the down (for next) and up (for previous) arrow keys...feels odd but at least something works.

On a related note, I've started to investigate gitk and am noticing that it seems to produce more search results than SmartGit for the same search terms in some cases.  It appears that SmartGit doesn't load all commits [1] by default and the searching only seems to take place over what's loaded -- once sufficiently more commits are loaded, additional search results seem to come up...


[1] Found a "Load all commits" menu item via the Query menu.

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #55 on: May 19, 2011, 09:00 AM »
Looking forward to any observations :)

I had to keep my old routine for now as I had to get things done... But I still plan to use SmartGit more. Will keep you posted.

BTW, I wanted to search the history of a project via the log window and was stumped initially.  I learned that "search as you type" (they call this speed-search apparently) seems to work.  Was this obvious to you?  I didn't find this in the docs...it was again via a posting to that support list.

Then I spent a while trying to figure out how to search for subsequent occurrences -- finally after trying a variety of combinations, I hit on using the down (for next) and up (for previous) arrow keys...feels odd but at least something works.

Wow, nope, I didn't know about the search as you type feature.
Thanks for sharing all this!
Yes, the arrows do feel a bit odd, but I'll get use to it.

On a related note, I've started to investigate gitk and am noticing that it seems to produce more search results than SmartGit for the same search terms in some cases.  It appears that SmartGit doesn't load all commits [1] by default and the searching only seems to take place over what's loaded -- once sufficiently more commits are loaded, additional search results seem to come up...


[1] Found a "Load all commits" menu item via the Query menu.

Again, nice find.  :up:

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #56 on: May 19, 2011, 11:43 AM »
oops... And I forgot to share that new link. A few good things in it.

Exit SVN, Enter Git

syntevo

  • Participant
  • Joined in 2011
  • *
  • default avatar
  • Posts: 2
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #57 on: May 19, 2011, 01:26 PM »
Hello,

I'm Thomas Singer from syntevo, one of the developers of SmartGit. I was drawn attention to this thread.

Dunno which app(s), though - I wasn't all impressed when I checked out SmartGit, but can't remember exactly why, guess I'll give it another chance. I think my 'meh' was partially causes by the program being implemented in Java, and (worse) not having an option to use the system JDK but installing it's own separate copy.
SmartGit offers three download bundles for Windows, the default one which includes a Java Runtime Environment (so the normal users are using a tested JRE version), one without a bundled JRE (requires an installed one) and a portable one with JRE (stores its settings in the same directory structure, so it can be installed on an USB stick).

It does miss some other important ones though, like “blame”, “stash”, “clone –bare” (last one : surprising, to say the least… Unless I missed something [I did miss the "stash" command which was very obvious  :-[ ] ).
"blame" is on our todo-list. Could you please explain the use-case behind "clone --bare"? Isn't a bare repository usually located on a server without GUI?

I did encounter a few problems and solving these problems meant dropping to the command line. E.g. : how do you "correct" a rebase that’s stalled… and won't abort nor continue ? hmmmm...  8)
Do you mean, that SmartGit sometimes hangs during a rebase? This bug has been fixed in version "2.1 early-access build 5". This was caused by Git trying to open an editor and waiting for it to exit.

The manual is ok, but not as clear as Tortoise’s, IMHO. Very dry, almost no graphs… and so it remains slightly abstract. I’d almost rather read Git’s man pages (not bad at all btw).
You are right, our manual is a weak spot.

On a related note, I've started to investigate gitk and am noticing that it seems to produce more search results than SmartGit for the same search terms in some cases.  It appears that SmartGit doesn't load all commits [1] by default and the searching only seems to take place over what's loaded -- once sufficiently more commits are loaded, additional search results seem to come up...


[1] Found a "Load all commits" menu item via the Query menu.
"Load all commits" does not load all commits from the repository (which might be too large), but instead loads commits which are not reachable from a branch or tag any more, e.g. those which remain after performing an amend-commit. Maybe one has a better name suggestion?

Wow, nope, I didn't know about the search as you type feature.
Thanks for sharing all this!
Yes, the arrows do feel a bit odd, but I'll get use to it.
What shortcut did you expect? What we can do to make the "search-as-you-type" feature more noticeable?

Cheers,
Tom

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #58 on: May 19, 2011, 01:41 PM »
Thanks a lot for stopping by! You have a great product, that's for sure.  :up:
I'll take the time to read everything tonight or tomorrow and give you well deserved feedback.
Thanks.
« Last Edit: May 20, 2011, 05:20 PM by Armando, Reason: Stopping bye --> Stopping by ;) »

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #59 on: May 20, 2011, 02:18 PM »
Since I'm running out of time, I'll have to be brief but might be able to expand during the weekend.

It does miss some other important ones though, like “blame”, “stash”, “clone –bare” (last one : surprising, to say the least… Unless I missed something [I did miss the "stash" command which was very obvious  :-[ ] ).
"blame" is on our todo-list. Could you please explain the use-case behind "clone --bare"? Isn't a bare repository usually located on a server without GUI?

Nice to know blame is on the todo list.
As for the "clone --bare" use-case... If I remember correctly, I think I was toying with the idea of using Dropbox as a Git repository/server and wanted to clone my current working directory to the Dropbox folder. I don't remember all the details at the moment. I'll see if I can find more details later.

I did encounter a few problems and solving these problems meant dropping to the command line. E.g. : how do you "correct" a rebase that’s stalled… and won't abort nor continue ? hmmmm...  8)
Do you mean, that SmartGit sometimes hangs during a rebase? This bug has been fixed in version "2.1 early-access build 5". This was caused by Git trying to open an editor and waiting for it to exit.

That must be it. I will Download the latest version. Thanks for the heads up.
I think I also had another problem with rebase -- not sure. I'll have to checkout my notes and maybe try to reproduce the problem later... that is, if there was a problem.

The manual is ok, but not as clear as Tortoise’s, IMHO. Very dry, almost no graphs… and so it remains slightly abstract. I’d almost rather read Git’s man pages (not bad at all btw).
You are right, our manual is a weak spot.

SmartGit is pretty feature rich. It would greatly benefit from a better manual where all features are clearly documented. A few interface images would be good too...

Wow, nope, I didn't know about the search as you type feature.
Thanks for sharing all this!
Yes, the arrows do feel a bit odd, but I'll get use to it.
What shortcut did you expect? What we can do to make the "search-as-you-type" feature more noticeable?

As you probably know, a lot of Windows applications (text editors, IDEs) use F3 and Shift/ctrl+F3 to move to next/previous occurrence (can't talk about Linux or Mac as I haven't really worked with those in the last couple years and I forgot...). I couldn't say for sure what the standard is, but F3 is what I'm used to... Hence the "awkward" feel.

That said, it's probably not a big deal if everything is documented properly or easily discovered (tooltips or whatever). Arrows are perfectly fine if one knows what they're supposed to do. Documentation is key here.


Other small points I can think of:

- Some other shortcuts feel a bit weird. E.g.: Ctrl+T for staging. I immediately changed it for Alt+Enter, and Ctrl+Alt+Enter for editing the index, which seems much more natural when reviewing changes using Alt+Arrows. This is personal of course... but just saying.

- After staging some content, the focus always moves to the newly staged file, which interrupts the "files modifications reviewing". There might be a way to prevent that but I haven't found it. Question: Could the focus remain at the top of the list and not move? When reviewing files before committing , it's inconvenient to always have to move back to the top of the file list or where the other file to review is located. But like I said, I'm aware that I might be missing something.

And last one for today (something  super minor that occurred to me while using SmartGit this morning):

- Some tooltips seem too verbose.
E.g., in the files section/table : "if selected,  unchanged files will be shown".
Why not simply : "Show unchanged files" ? It's more "to the point" IMO.

Like I said, it's minor, but... the devil is in the details!

Thanks for your attention.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #60 on: May 20, 2011, 04:32 PM »
To add my two cents to the following:

As you probably know, a lot of Windows applications (text editors, IDEs) use F3 and Shift/ctrl+F3 to move to next/previous occurrence (can't talk about Linux or Mac as I haven't really worked with those in the last couple years and I forgot...). I couldn't say for sure what the standard is, but F3 is what I'm used to... Hence the "awkward" feel.

When I think of search-as-you-type functionality, one of the first contexts to come to mind is in the "Find" functionality of web browsers.

The following table summarizes what I found for some relatively recent web browsers for invoking next / previous searches:

Chrome 11Firefox 4IE 8Opera 11
Enter / Shift+Enteroooo
Control+G / Control+Shift+Gooxo
F3 / Shift+F3ooxo
Alt+N / Alt+Pxoxx

"o" stands for appears to support.
"x" stands for doesn't appear to support.


P.S. Thanks for stopping by and also for SmartGit :)

syntevo

  • Participant
  • Joined in 2011
  • *
  • default avatar
  • Posts: 2
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #61 on: May 22, 2011, 12:10 PM »
As you probably know, a lot of Windows applications (text editors, IDEs) use F3 and Shift/ctrl+F3 to move to next/previous occurrence (can't talk about Linux or Mac as I haven't really worked with those in the last couple years and I forgot...). I couldn't say for sure what the standard is, but F3 is what I'm used to... Hence the "awkward" feel.
OK, I'll try to add (Shift+) F3 in the next 2.1 build. Unfortunately, this will be hard-coded and not customizable, because only the shortcuts for menu items are customizable.

- Some other shortcuts feel a bit weird. E.g.: Ctrl+T for staging. I immediately changed it for Alt+Enter, and Ctrl+Alt+Enter for editing the index, which seems much more natural when reviewing changes using Alt+Arrows. This is personal of course... but just saying.
We took Ctrl+T from the Git GUI. BTW, I have changed Alt+Up/+Down to F3/F4 so I only need one hand for navigation...

- After staging some content, the focus always moves to the newly staged file, which interrupts the "files modifications reviewing". There might be a way to prevent that but I haven't found it. Question: Could the focus remain at the top of the list and not move? When reviewing files before committing , it's inconvenient to always have to move back to the top of the file list or where the other file to review is located.
We'll try to find a solution.

- Some tooltips seem too verbose.
E.g., in the files section/table : "if selected,  unchanged files will be shown".
Why not simply : "Show unchanged files" ? It's more "to the point" IMO.
IMHO "Show unchanged files" is ambiguous: it could mean the current state or the action which happens when clicking. Hence we decided to be precise.

@ewemoa: it looks like Microsoft is the only one which does not comply to the Microsoft Windows standard (F3). ;)

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #62 on: May 24, 2011, 01:41 PM »
Thanks for your attention to these details.

I wonder if I'm the only one finding that the "moving focus" (when staging files) is a problem. What did you think of it ewemoa?
 

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #63 on: May 24, 2011, 08:30 PM »
To confirm, do you mean something like the following?

1. Before "Stage" (HEAD vs. Working Tree) - focus is on right side (Working Tree)
1.before-staging.png

2. After "Stage" (HEAD vs. Index) - focus is on left side (HEAD)
2.after-staging.png

3. After "Unstage" (HEAD vs. Working Tree) - focus is on left side (HEAD) and cursor has moved up to the top-leftmost position.
3.after-unstaging.png
On a separate note, does the right side content look "stale"?  Or may be the label of "HEAD vs. Working Tree" should be "HEAD vs. Index"?

4. After "Reload the previewed file contents" (HEAD vs. Working Tree) - focus is on left side and the cursor is at the beginning of the first difference in text(?)
4.after-reloading.png

FWIW, I got similar results with the cursor starting in an area of the content which didn't change.

OS: Windows XP SP3
SmartGit Version: 2.0.4
Build Date: 2011-04-05
Java Version: 1.6.0_24-b07

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #64 on: May 24, 2011, 11:34 PM »
Thanks for the detailed report ! Interesting.

This is actually different than what I was referring to. And these caret moves don't seem to annoy me as I didn't even notice them!

I was actually referring to something more basic : the focus moving in the "Files" section.

Screenshot - 2011-05-24 , 23_01_04.png

However, I was just able to get it to work  pretty much the way I want by playing with the sorting!  I.e. : files don't move around in the "files" section after staging changes.

I'm embarrassed...   :-[ I'm not sure why I didn't get it before. I did play with the various column sorting before, but I did miss a couple aspects about the sorting mechanism (i.e.: ctrl+click can activate/deactivate the sorting for a column).

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #65 on: May 27, 2011, 07:25 AM »

With all that said, I’ve considered creating a Mercurial extension that adds git’s index functionality to Mercurial, because I think it would make the transition to Mercurial easier for git users. I’ve had enough experience with Mercurial’s internals to know that such a thing is possible, but I simply don’t have the time to do it all myself. If you’re interested in helping out please let me know!

...  So maybe this index isn't that useless after all. :)
BTW, have you seen the same author's post on Mercurial Queues?

  A Git User’s Guide to Mercurial Queues

Stacked Git and guilt look interesting too.

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #66 on: May 27, 2011, 03:00 PM »
Thanks for the guilt and Stacked Git links. I'll have a look at those during the weekend.  :up:

Yes, I think I read "everything" Losh wrote (when available...) about Mercurial and Git. This article is actually what pushed me to experiment with MQ "at the time". I actually mention therethat I liked MQ.

There are many good articles on MQ (like Mercurial queues just clicked )

And there's this great blog article (also fairly recent -- recommended) :  Mercurial and Git: a technical comparison. Probably nothing you wouldn't learn by reading a few books on Git or Mercurial... but that's exactly the point. A few books is sometimes too much.

In the comments, the author intelligently compares MQ to the Git index/staging area :

Thanks for the comments, and for the link to Mercurial Queues. It's true that queues are something that Git doesn't have; but then again, they're not needed in Git because it has (cheap) branches and you can reorder the commits afterwards.

However, using Mercurial Queues is definitely not the same as using the Git index, nor should it be confused as such. Yes, using Queues can enable you to do (local) feature branching (which is good) but Git's index is the set of things you are *about* to commit.

A case in point: I was merging the old Mac ZFS code and the onnv_72 code, which involved a significant merge set (see https://github.com/a...commit/6d20fbb74f11a). Putting the changeset into perspective: "Showing 604 changed files with 422,503 additions and 1,496 deletions" is the message that GitHub shows.

There is no way I would have been able to commit that with Mercurial Queues. For a start, 100-200 files were in conflict, which would mean either (a) putting some changes in with the conflict markers in place, or (b) backing out the merge node and applying changes incrementally, i.e. doing a manual merge.

However, using the Git index, I was able to solve one conflicted file at a time, and add it into the git index when I had de-conflicted that file. The git status was then able to tell me those files which were different from the index (i.e. those ones which I hadn't de-conflicted yet) and as such, give me a progress report on how far down the de-confliction line was. Once I had all conflicts addressed, and added into the git index, I was able to commit the merge node separately.

So don't get me wrong; I think if you have to use Hg then an extension like Queues (and histedit etc.) are absolutely necessary tools to have at your disposal. But they just replace built in functions of the git tree structure and in no way are able to replace the index.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #67 on: May 31, 2011, 12:56 AM »
Thanks for the additional links :)

To diverge a bit, I'm taking a look at etckeeper -- a tool to manage a *nix (hmm, not sure about the *BSDs) system's configuration info via a DVCS.  Looks like it's supposed to work with Git, Bazaar, Mercurial, and Darcs.  Perhaps for folks who are looking after certain types of systems, this kind of thing might be an entry point into learning to use one of the DVCS systems.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #68 on: May 31, 2011, 04:28 AM »
Came across gource -- "a software version control visualization tool" -- anyone tried it out?

Sample videos and screenshots :)

phitsc

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 1,198
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #69 on: May 31, 2011, 04:46 AM »
Does it have any value other than just looking damn cool?

Looks more like a tool to do art than work ;)

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #70 on: May 31, 2011, 05:34 AM »
Perhaps so :)

...and give the gource developer more practice with OpenGL may be...

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #71 on: May 31, 2011, 10:28 AM »
:huh: Woa... Gource is weird. I don't really see the point, but... why not. Maybe I'm just lacking imagination today.

...and give the gource developer more practice with OpenGL may be..

Most likely.

ewemoa

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 2,922
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #72 on: June 01, 2011, 07:37 AM »
Found Git and Mercurial: Compare and Contrast from the comments of:

And there's this great blog article (also fairly recent -- recommended) :  Mercurial and Git: a technical comparison.

Understanding some of the nuts and bolts has really helped me in following (perhaps not completely) documentation and discussions -- for both Git and Mercurial.

Armando

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 2,727
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #73 on: June 01, 2011, 08:34 AM »
This "comment" is one of the best for git/mercurial comparisons. Read it several times a couple months ago when I was trying to figure out where  I wanted to invest my energy.  :up:

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • default avatar
  • Posts: 11,186
    • View Profile
    • Donate to Member
Re: DVCS ?
« Reply #74 on: June 05, 2011, 08:26 PM »
I've always used TFS or VSS, but in absence of consulting and having a server at home, and all I've heard about Git/Subversive/Mercurial, I decided to try something new.  I'm using Git in VS2010 right now.  A couple of really good resources that I've found for getting me up to speed are http://gitready.com/ and http://gitref.org/.

(One question- it seems that your repository in the case that you're not using something like github is purely local- is this true?  And is there a way to have a copy of the repository without another machine?)
« Last Edit: June 05, 2011, 08:28 PM by wraith808 »