We use BitBucket and Jira at my company. Works really well and is pretty easy to setup and start using. Not very expensive for small company's either which is good. You can do a trial and go through their documentation to see if it would work for you.
Gitlab I've played with, I've heard nothing about githug. But the primary concern is to use git because it's distributed and free, and there are crazy good suites of products which integrate directly into it. The VCS is incredibly powerful, and FAST, and the model is so different from any other VCS, when you embrace the style your context switching, merging, CI/CD all become extremely streamlined.
The reasons to use git are stupendously long depending on the detail level you seek, and there are many many many resources out there that extensively document Git's advantages. The biggest advantage I see though, is going from a small group with a self managed repository, and then expanding to an enterprise offering from someone like Github is just a matter of setting up an additional remote, and a single push later your entire history is migrated.
If you use visual studio, go with TFS. Git is nice because there is a ton of flexability in there, but that is also why its a pain sometimes. I personally dont like Git because I always run into some issue with it somewhere. I also dont care for the idea checking into my local repo, and then pushing that to the global repo (or whatever its called). I personally like to have a single commit instead of a commit+push. BUT, git is the defacto standard... so if you are not using visual studio, use GIT.
I agree with the above that Git requires you to tame it a bit before you can really use it in a meaningful way. That being said, there is not that much to learn for a beginner besides some vocabulary and basic workflow. And it definitely is a standard.
I would add that if you can afford it, I would suggest to host your own git server instead on relying on Github or Bitbucket or the likes. It's not difficult to do and you have complete control of your repo that way. I think those are good as a backup or a way to share code with the outside world but for a development purpose I'm not convinced.
We use BitBucket and Jira at my company. Works really well and is pretty easy to setup and start using. Not very expensive for small company's either which is good. You can do a trial and go through their documentation to see if it would work for you.
If you use visual studio, go with TFS. Git is nice because there is a ton of flexability in there, but that is also why its a pain sometimes. I personally dont like Git because I always run into some issue with it somewhere. I also dont care for the idea checking into my local repo, and then pushing that to the global repo (or whatever its called). I personally like to have a single commit instead of a commit+push. BUT, git is the defacto standard... so if you are not using visual studio, use GIT.
This is the exact same issue everyone goes through with Git, because distributed and Git are such a fundamentally different approach to version control. The way I read your response is an argument against distributed, not necessarily an argument against Git. Functionally, TFS and git probably appear very similar on the surface if you were to disregard where the changes are being stored. It just seems to me that you are not comfortable with the concept of a distributed VCS, in the same way I was in the beginning.
The thing that finally got me on board to start adopting to the git way of thinking is that if you want it to, git will devolve back into a centralized VCS.
Quote:
Originally Posted by takoma
I agree with the above that Git requires you to tame it a bit before you can really use it in a meaningful way. That being said, there is not that much to learn for a beginner besides some vocabulary and basic workflow. And it definitely is a standard.
I would add that if you can afford it, I would suggest to host your own git server instead on relying on Github or Bitbucket or the likes. It's not difficult to do and you have complete control of your repo that way. I think those are good as a backup or a way to share code with the outside world but for a development purpose I'm not convinced.
I read 'tame it' and just get the impression you are trying to fight against git. It is extremely opinionated even though it is distributed and flexible, you simply need to tailor the rest of your flow to work with git. But even that explanation is weak, because the truth is the real enhancement and benefits you get from git is the improvements to your workflows.
I've used BitBucket/Jira and TFS in commercial environments and I really liked both, and both can be cloud hosted.
BitBucket will be cheaper, but I think some of it depends on type of development environment and developers you use. If you're a bunch of .net guys using visual studio then you'll be more used to TFS as will potential future devs.
Ah, some follow up info is that the guys here use a program called MicroChip to write some low level language.
So they aren't tied to Microsoft. But they do use visual studio for some other things...maybe TFS would be a better overall route? But visual studio isn't the primary compiler they use, it has alot to do with MicroChip.
We use SVN (Subversion) here and CruiseControl.NET for automation. I like the integration with TortoiseSVN in windows or directly in VS. There is a good bit of integration points between SVN and almost any other product. We have it tied in to our ticketing system as well. I can check in a change and directly link the updates to a specific defect or feature. I realize that GIT is all the rage right now, but SVN has never let me down.
We use SVN (Subversion) here and CruiseControl.NET for automation. I like the integration with TortoiseSVN in windows or directly in VS. There is a good bit of integration points between SVN and almost any other product. We have it tied in to our ticketing system as well. I can check in a change and directly link the updates to a specific defect or feature. I realize that GIT is all the rage right now, but SVN has never let me down.
We use SVN (Subversion) here and CruiseControl.NET for automation. I like the integration with TortoiseSVN in windows or directly in VS. There is a good bit of integration points between SVN and almost any other product. We have it tied in to our ticketing system as well. I can check in a change and directly link the updates to a specific defect or feature. I realize that GIT is all the rage right now, but SVN has never let me down.
I feel the same way, and used the EXACT SAME THING. SVN with TortiseSVN gui and my build system\test used CC.net as well. The one downside that we ran into was trying to do gated checkins. I heard there was a way to do it with hooks or something, but I never got around to implementing it. I do miss tortiseSVN... it made everything easy and straight forward.
Quote:
Originally Posted by Avonosac
Really? Never tried to do a merge with any refactoring in it?
I did all the time, and it comes down to the quality of the merge tool that you use. I don't think that GIT has a merge tool built in. When i was using SVN, i used Visual Studio 2010-2012 merge tool which worked ok, and Beyond Compare which i recall worked better. With TortoiseSVN, merging, tagging, labeling, and branching was all very straight forward and easy.
Thinking more about it.... they are all the same IMO. It all depends on the GUI tool that you use in the end. My distaste for GIT is probably the same reason why I cant stand Java... i have not found an IDE that works the way I want it to. The tools that should make things easier just ends up adding more work for me. I'm sure if I find a good GUI tool for GIT I will be happy again..... i wonder if Tortoise makes one???
I feel the same way, and used the EXACT SAME THING. SVN with TortiseSVN gui and my build system\test used CC.net as well. The one downside that we ran into was trying to do gated checkins. I heard there was a way to do it with hooks or something, but I never got around to implementing it. I do miss tortiseSVN... it made everything easy and straight forward.
I did all the time, and it comes down to the quality of the merge tool that you use. I don't think that GIT has a merge tool built in. When i was using SVN, i used Visual Studio 2010-2012 merge tool which worked ok, and Beyond Compare which i recall worked better. With TortoiseSVN, merging, tagging, labeling, and branching was all very straight forward and easy.
Thinking more about it.... they are all the same IMO. It all depends on the GUI tool that you use in the end. My distaste for GIT is probably the same reason why I cant stand Java... i have not found an IDE that works the way I want it to. The tools that should make things easier just ends up adding more work for me. I'm sure if I find a good GUI tool for GIT I will be happy again..... i wonder if Tortoise makes one???
Uh... git is like.. by definition a merge tool. With git, you have to manually merge orders of magnitude less often, even with more weird activity going on in the repository. As I said before, git can be devolved down to a centralized repository model, but how they function is very, very different. It is clear you are looking for a VCS which has the same view on versioning code, used in the same way, and if you use Git in a way it wasn't intended to be used it could be frustrating.
GUI breaks many of the advantages of Git, but Tortoise does make a tool for it. Have you used IntelliJ IDEA for Java? It has a solid GUI for git from what I understand as well, but if your a .NET guy then I'm not sure you're interested in the command line paradigm, and it certainly isn't built for the M$ development sandbox.
Uh... git is like.. by definition a merge tool. With git, you have to manually merge orders of magnitude less often, even with more weird activity going on in the repository. As I said before, git can be devolved down to a centralized repository model, but how they function is very, very different. It is clear you are looking for a VCS which has the same view on versioning code, used in the same way, and if you use Git in a way it wasn't intended to be used it could be frustrating.
GUI breaks many of the advantages of Git, but Tortoise does make a tool for it. Have you used IntelliJ IDEA for Java? It has a solid GUI for git from what I understand as well, but if your a .NET guy then I'm not sure you're interested in the command line paradigm, and it certainly isn't built for the M$ development sandbox.
When I was talking about merging, i was talking more along the lines of when someone updates the repo before you check in, and you need to merge your code in with there's. GIT and SVN both do differentials when you push in the data. Its not saving another whole copy, it only saves what was changed. I dont consider that merging at all.
I just picked up TortiseGIT and I'm happy with that. I dont mind CMD stuff, I do a bunch of it with all sorts of other apps like today i will need to do a bunch of FFMPEG stuff. My issue with CMD is trying to remember the arguments for everything. I cant remember if you push first, or commit. What is the argument to add a message to the commit... how do I add files... how do i remove files.... how do i view the history of this file????? If i knew all the cmds on the top of my head, its no biggie, but I just can never remember those. To right click a file and click "history" is very easy and typically formatted in a nicer way, but im sure you can grep the output or add more flags to sort the data how you want it in CMD too. Every time I use GIT on WINDOWS (not linux), I have issues with credentials, I think most of them derive from the fact that I forget i need to launch Pagent.
I was in charge of the SVN, and TFS instance at my previous job for a group of 22 developers working on 5 active projects and 15 legacy projects, and in that 3 year time, I ran into less issues than I have in the shorter span of me using GIT. The ONLY annoying issue I ran into on SVN (and probably would happen on GIT), was where a file with the same name got checked in 2x one uppercase one lower case, and when pulling windows would freak out because windows files are not unique if the casing is different, while linux (where svn was running) sees them as different files.
I have not had to do any java in 2 years, but I need to find a new IDE because i hate Eclipse. I am sure whatever tool i find will have nice support for GIT.
When I was talking about merging, i was talking more along the lines of when someone updates the repo before you check in, and you need to merge your code in with there's. GIT and SVN both do differentials when you push in the data. Its not saving another whole copy, it only saves what was changed. I dont consider that merging at all.
I just picked up TortiseGIT and I'm happy with that. I dont mind CMD stuff, I do a bunch of it with all sorts of other apps like today i will need to do a bunch of FFMPEG stuff. My issue with CMD is trying to remember the arguments for everything. I cant remember if you push first, or commit. What is the argument to add a message to the commit... how do I add files... how do i remove files.... how do i view the history of this file????? If i knew all the cmds on the top of my head, its no biggie, but I just can never remember those. To right click a file and click "history" is very easy and typically formatted in a nicer way, but im sure you can grep the output or add more flags to sort the data how you want it in CMD too. Every time I use GIT on WINDOWS (not linux), I have issues with credentials, I think most of them derive from the fact that I forget i need to launch Pagent.
I was in charge of the SVN, and TFS instance at my previous job for a group of 22 developers working on 5 active projects and 15 legacy projects, and in that 3 year time, I ran into less issues than I have in the shorter span of me using GIT. The ONLY annoying issue I ran into on SVN (and probably would happen on GIT), was where a file with the same name got checked in 2x one uppercase one lower case, and when pulling windows would freak out because windows files are not unique if the casing is different, while linux (where svn was running) sees them as different files.
I have not had to do any java in 2 years, but I need to find a new IDE because i hate Eclipse. I am sure whatever tool i find will have nice support for GIT.
All of your issues sound like windows issues to me. You like your GUI's but you don't like the baggage that comes with it (the terrible file system as a start). It sounds like you aren't using Git Bash, but are trying to use the native terminal for everything, and honestly that entire experience is so poor I install git on machines I never plan to code on, just to get a familiar defaulted git bash shell.
You are clearly more versed in SVN, which is why you would be more comfortable using it, but it is also why you have so much trouble with git. You committed so completely to the SVN way of doing things, any change in the workflow seems wrong and alien to you, and your years of experience scream 'this is wrong' when you're going through things.
The problem is, Git merges all of those issues you think might be a problem for you. When I first started with git, I actually had to work hard to contrive a change to our code base which would cause git an issue. The only way I could guarantee a merge conflict was editing the exact same line in the history of both branches in a merge, but even then git has an uncanny ability to pick the right one.
The reason you think SVN and Git have parity on the diffs they store, is because you don't understand that Git stores your information in a fundamentally different way. SVN stores your docs, and then a version of them in history, the changes are stored but the document is kept complete. Git on the other hand stores your history tree, and the changes and replays them in order to build your document.
SVN keeps the most up to date 'truth' and tries to handle the history for merges to get to the right result of the joining of two truth's. Git however just combines the history of both branches, and is able to apply orders of magnitude more of it without conflict before the results require intervention. SVN tracks changes at the file level, Git tracks changes at the line level (kinda).
Late to the game here, but I actually transitioned my company away from VSS to TFS after I started there in September. VSS is a nightmare but the new TFS online stuff is actually pretty robust. You can actually use Git with TFS online instead of the standard Team Foundation version control, but people I work with don't have an familiarity with the Git system so I had to keep it close to home. If you are doing any work on .NET I would highly recommend using TFS Online with Git as the actual version control system. Otherwise, just stick with Bitbucket. I say Bitbucket over Github because Bitbucket actually includes a private repo for free, Github charges for this feature.
Careful with GIT on TFS, last I remember it was partially supported. You can select it from an option and stuff, but its not fully incorporated in the Visual Studio versions last i remember.
Careful with GIT on TFS, last I remember it was partially supported. You can select it from an option and stuff, but its not fully incorporated in the Visual Studio versions last i remember.
No, I meant Git in Visual Studio. Perhaps I misread your post but it sounded like you were also talking about VS integration. I haven't used TFS at all, only Git and SVN.
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Related Threads
?
?
?
?
?
Ask a question
Ask a question
Overclock.net
27.8M posts
541.2K members
Since 2004
A forum community dedicated to overclocking enthusiasts and testing the limits of computing. Come join the discussion about computing, builds, collections, displays, models, styles, scales, specifications, reviews, accessories, classifieds, and more!