Git On Windows Without Cygwin? - windows

Are there any native Git implementations for Windows that do not require Cygwin? I've become a fan of the TortoiseSVN client, and would really like to see a similar Git client for Windows.
Edit: I am also considering Mercurial, but would prefer to check out a few before I make a decision.

There is a TortoiseGit -- Window Explore Extenstion to Operate Git.

I started GitExtensions about a week ago. Allthough version 0.6 is a pretty complete package, I do not consider it release-ready yet. The toolset should be ready for its first stable release in a few days. There are a few things I need to fix before anyone should use it in production. The most important problem now is that the shell extension part is written in c# and therefore can cause problems. I'm rewriting this in c++ at the moment, should just take another few hours. I also want to build in some features that should prevent users from screwing up (like create a stash ontop of another stash and throwing away work or commiting changes when in the middle of a merge). I allready finished allmost all git commands I ever use (push, pull, fetch, stash, branch, commit, merge, format-patch, am, apply, etc), so it should be usable pretty soon. The toolset is written in C# (.Net 3.5 until version 0.6, later versions use .Net 2.0) except the shell extension part. There is also a visual studio plugin, but this is still pretty basic.
I have not tried TortoiseGit yet btw, but I really like TortoiseSVN!
Henk

Take a look at MSysGit. However this is just the command line git compiled with MingW instead of cygwin. This is not a GUI Tool like TortoiseSVN.
There is GitExtensions that takes the same path as Tortoise but it does not look ready yet.

Have you tried looking at the TortoiseGit page on Google Code? I believe it's the same project as the other link posted, but it's a bit friendlier. You can download the latest version as an installer from there.

Related

Xcode 4 and version control - But which one?

I have a question, the answer isn't really hard technically, but I am more looking for the experience of most advanced programmers here.
So like many noobs, I am doing my version control in the crappiest way, which is to copy paste my project directory and rename it with the current date/time.
You will agree that it's a quite limited solution :P
I decided to learn version control system(s), but I am facing many choice, and I would like to know what are the best for your points of view ?
Using Xcode integrated version control (git or anything else), with organizer, cloning, commits from xcode etc. I mean totally or almost controlled by Xcode ?
Ignoring Xcode letting him think there no version control and doing it myself in command line ?
A merge of the two above ? How ?
And then :
Using git ? Github is very popular and powerful, but you must learn git, and learn it hard.
Mercurial ? It seems more friendly.
Something else ?
It would be priceless to have some feedbacks about more experienced people, so that me and many others I hope can choose their paths when facing the VCS wall :-)
Thanks a lot !!!
First: Use a VCS at all.
The rest:
Mercurial is nice, but Apple went with Git for Xcode. So if you want source control integration within the IDE, Git is the best option.
The things I miss most when working with Xcode & Mercurial are the "Modified" indicators in the source list and the integrated diff-viewer. (Which is pretty good in Xcode IMO)
The actions you perform in the Organizer are a bit limited at the moment, but you can always fall back to Terminal.app for that.
I can only recommend git. Merging is easy, I remember the days when a merge conflicts occured with SVN, it was pain, horrible pain to resolve those. You can easily start a local repository with git, especially if you are the only one developer.
Have a look at Which SCM system to use with Xcode 4 for a lone developer?.
I suggest some reading on git for the beginning:
Git in five minutes
Git Community Book
The Thing About Git
Take some time to invest in learning the basics of git, it's absolutely no rocket science to get you started on basic usage and you will benefit from it right away. Once you know the basics of git, you aren't locked into another tool wrapping git, you can use git if there are some problems with XCode. Also, git is available for several OS so the knowledge you gain about git will not go away if you move between different computers that have different OS.
Here are my best of bookmarks for git:
http://www.delicious.com/Ralphtheninja/bestof+git
I've had good success with SubVersion.

visual studio 2010 last successful build

I made some changes to my website, then had to reformat my server, and over two weeks I tried to undo what I did (it was a stupid forum thingy). Obviously I missed something, becuase now I have the dreaded Build Failed With No Error problem.
This is my home server, so no I am not running source control.
After staring at it for a few days, I decided to try somehting. Today I allowed VS to run the last successful build, and it still works.
QUESTION: How can I go back to the last successful build? I don't care about any changes made since it worked. That's really all I need.
THANKS
Have you checked to see if you have Previous Versions available?
It sounds like you won't likely be able to recover the source files / project config, though you could certainly attempt to recover the "source" by using tools like ILSpy or .NET Reflector. You can use them to examine the output assemblies, and reconstruct your code if necessary.
As a lesson learned, both Mercurial and Git work wonderfully for versioning home projects - I'd give a slight nod to Mercurial in your case as it works just a tad bit easier on the Windows platform.

Is it easy to port TortoiseHg to use Git instead?

TortoiseHg is superior to TortoiseGit in many features.
Would be a matter of changing a few lines of code to make a new TortoiseGit based on TortoiseHg, or it requires weeks/months of development?
You can use Mercurial with Git repositories via the excellent hg-git extension, which is developed by the github folks. Any recent TortoiseHg version already has the dulwich library, you just need to clone hg-git and add a couple lines to your mercurial.ini file.
The instructions are in the TortoiseHg help under "Use with other VCS systems" .
Directions for configuring ssh can be found here. However, TortoiseHg will automatically use the plink it comes bundled with, so you don't need to worry about configuring PuTTY's plink.
Note that I've had some problems cloning large repos on XP due to file locking issues which don't seem to occur on Windows 7.
It would definitely not be just a matter of changing a few lines.
TortoiseHg is intimately written against Mercurial. It doesn't just wrap around the command line client, it integrates with the core python code.
The entire program, from bottom and up, would have to be rewritten.
It is much more constructive to give the TortoiseGit team good feedback on what you would like see improved.

Does tortoise or ankh svn have log dump capability?

I'd like to include revision history in a menu system of my builds so that users can see it and it's auto-built from the svn repository before each build. My team doesn't have the core svn, only tortoise and ankh. I'd rather not have to go through configuration of it on each machine we use just for this feature if one of the tools we already have can do it.
I'm looking for something that does ANY full revision log dump like
svn log
svn log --xml
svn log -v
but built into ankh or tortoise.
i've been searching their documentation and websites with no luck so far, any ideas?
TortoiseSVN doesn’t have the ability to do this, and I doubt Ankh does either. The command line is the way to do it. If you don’t want to install a command-line client on every machine, you could consolidate your build process so that there is a dedicated build machine which does it.
I was looking for this the other day, and came up empty (we're using the exact same setup here).
If we both put in a feature request, it would carry more weight. ;)

Putting existing versions and branches of a project under version control

I am the only developer of a software project. I did not use any version control until now. I know I can put the last version of the project under version control. The question is whether it is possible to put older versions and branches of the project under version control. If it is possible, how ?
which version control software should I use ? (I am using Visual Studio 2008)
Edit: I have almost all previous versions.
You could do it, assuming you have copies of the older revisions that you want to put into source control (you can't magically make them appear, of course).
What I would do is take the oldest version, put it somewhere, and commit the folder to your source control (this would become Revision 1). Then, take the second-oldest version, overwrite the first version on your hard drive with that, then check in again (this becomes Revision 2 in source control). Repeat, overwriting with the next-newest revision each time until all of the versions you want are checked in.
There are good, free version control systems available. I use SVN (with the TortoiseSVN shell add-on), and I'm quite happy with it. CVS is alright too, but gets very slow as projects get large.
Which VCS you should use is really up to you. I'd recommend Mercurial as it is a very good distributed VCS and runs rather well under Windows. I don't know what VS support but you may want to use a supported VCS (which probably means Subversion I guess). There is TortoiseHg available there as well.
If you have all previous versions, you can import them manually, one after the other to get to the last one then work from that.

Resources