Git!
-
Oh Jeez, how do I hate thee? Let me count the ways. 93. There are 93 different ways in which I hate GIT! I have to use the bloody thing and I'm not sure if I'm pointing to the right repo or not. Elephants! :confused: :sigh: :mad: :wtf: :beer:
The only time I used Git I had to type like 10 commands to be sure that I got the right branch, this coupled with the lack of a fully functioning GUI made me switch to TFS.
CEO at: - Rafaga Systems - Para Facturas - Modern Components for the moment...
-
Oh Jeez, how do I hate thee? Let me count the ways. 93. There are 93 different ways in which I hate GIT! I have to use the bloody thing and I'm not sure if I'm pointing to the right repo or not. Elephants! :confused: :sigh: :mad: :wtf: :beer:
GIT is a great tool… in the same way that an advanced CNC milling machine is a great tool. If you’re working in a very specialized environment, with highly skilled craftspeople that are well-trained and understand how to properly use – and what the dangers are – of such a tool, then it is the appropriate tool for that environment. That environment is most likely producing specialized items; prototypes, one-off’s, uniquely difficult items to fabricate, or have other special needs (the machine shop at NASA’s Jet Propulsion Laboratory comes to mind). I’ll admit, a CNC milling machine is pretty cool… I’ve used (and accidently abused) them. But when my task was to quickly drill a hole, I didn’t want to waste time trying to set up that complex machine when a simple drill press – or even hand drill – would do the job more quickly and safely. In fact, if you need to quickly and safely attach part A to part B, you don’t want a CNC milling machine, you want a power screwdriver; maybe one with torque settings, speed control, and a few other simple, self-obvious features. It’s going to let you focus on your job of attaching the parts together and moving on to the next task. Something like Subversion or the myriad of other source control systems that aren’t so cool but do their job of managing source, and allow me, as a developer, to intuitively check out, update, merge, diff, and check in source code. So if you’re developing something specialized, like the Linux kernel, or have a relatively small team of highly distributed people whom you can afford to train (and pay accordingly), then by all means you should consider GIT. That is the environment and skill level the tool was developed for. But if your focus on writing software, with teams of developers at a various skill levels, and you want them to focus their time and effort on developing the software business solutions that make your company money, then GIT is most likely not the appropriate solution, no matter how “cool” folks say it is. BTW, we are a small, start-up, who hastily chose GIT because “everyone is going to it”. After a year, no one in the organization is comfortable with it, most of the developers don’t trust it because we have all managed to destroy work by doing “what seemed intuitive”, and it's a decision we all regret.
-
Oh Jeez, how do I hate thee? Let me count the ways. 93. There are 93 different ways in which I hate GIT! I have to use the bloody thing and I'm not sure if I'm pointing to the right repo or not. Elephants! :confused: :sigh: :mad: :wtf: :beer:
I'm using Git with git flow (http://danielkummer.github.io/git-flow-cheatsheet/[^]) and i love it ...
gzo
-
Oh Jeez, how do I hate thee? Let me count the ways. 93. There are 93 different ways in which I hate GIT! I have to use the bloody thing and I'm not sure if I'm pointing to the right repo or not. Elephants! :confused: :sigh: :mad: :wtf: :beer:
Making git easy... http://gitblit.com/[^] http://code.google.com/p/tortoisegit/[^]
-
I'm working with git as an extension to VS's Team Explorer (VS 2012/2013) and had no problem so far (4 months)...
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
As far as I knew, VS Team Server Explorer shipped with version control (Last version I had success with was 2010, 2012 didn't play nice with the rest of the team's setup so I threw it out.) From what I've read about GIT, it seemed really unfriendly. The interfaces in VSTS were UI, web link, and command, I thought GIT was console command only.
-
-
Rage wrote:
Decentralised configuration management systems...
Presumably that was a misstatement.
Rage wrote:
Plus if you do not need the decentralized way, you may use it as a plain normal centralized version as well.
Doesn't alter the fact that is missing a primary feature for anything above a small company - that of management of multiple products where there are non-trivial code dependencies between them.
jschell wrote:
Presumably that was a misstatement.
How that ? No, dfinitely Distributed/Decentralised Configuration Management System.
jschell wrote:
here there are non-trivial code dependencies between them
Define "non trivial" ? DCMS can do everything what a normal CMS can do, so either what you are trying to achieve is not feasible with centralised configuration management, or your code structure was not made up properly.
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus Entropy isn't what it used to.
-
I'm using Git with git flow (http://danielkummer.github.io/git-flow-cheatsheet/[^]) and i love it ...
gzo
-
jschell wrote:
Presumably that was a misstatement.
How that ? No, dfinitely Distributed/Decentralised Configuration Management System.
jschell wrote:
here there are non-trivial code dependencies between them
Define "non trivial" ? DCMS can do everything what a normal CMS can do, so either what you are trying to achieve is not feasible with centralised configuration management, or your code structure was not made up properly.
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus Entropy isn't what it used to.
Rage wrote:
No, dfinitely Distributed/Decentralised Configuration Management System.
Because that isn't what Git is. http://en.wikipedia.org/wiki/Configuration_management#Overview[^]
Rage wrote:
Define "non trivial" ? DCMS can do everything what a normal CMS...
If we are talking about Git then it does not have a mechanism for dealing with independent deliverables which share code (not other deliverables) because each repository is optimized for dealing with a single deliverable. This works well for open source internet projects. It doesn't work for a company with different product lines because the end up kludging solutions either with multiple repositories or a single repository. Other source control systems do.
-
MarkTJohnson wrote:
I could lock the file I was working on and know my changes would go in. If someone had a file I needed locked
Ew. I hated locking files. I thought it was a huge improvement to work with something like SVN that didn't require file locking, and was one of the reasons I never adopted TFS because in its early days, it required file locking. Inevitably, someone would leave a file locked at the end of the day and was nowhere to be found. Marc
"someone would leave a file locked at the end of the day and was nowhere to be found"
Same happened in my org, someone left entire directory (containing a big project) locked (reserved checked-out) in ClearCase on his last working day and we had to copy the dir with dir_new :-) I really hate ClearCase, when it take 5 seconds just to show the diff. Git is fast.
-
Rage wrote:
No, dfinitely Distributed/Decentralised Configuration Management System.
Because that isn't what Git is. http://en.wikipedia.org/wiki/Configuration_management#Overview[^]
Rage wrote:
Define "non trivial" ? DCMS can do everything what a normal CMS...
If we are talking about Git then it does not have a mechanism for dealing with independent deliverables which share code (not other deliverables) because each repository is optimized for dealing with a single deliverable. This works well for open source internet projects. It doesn't work for a company with different product lines because the end up kludging solutions either with multiple repositories or a single repository. Other source control systems do.
jschell wrote:
Because that isn't what Git is
Source control is one part of configuration management. To be precise, since this is what you are after, let's call it a distributed version control system instead of configuration management system, even if one can argue a version control system in software development can handle about everything required by configuration management.
jschell wrote:
If we are talking about Git then it does not have a mechanism for dealing with independent deliverables which share code
Still do not understand what Git cannot do. How would you do that with Subversions ? Or ClearCase ? or SourceSafe ? or Vault ?
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus Entropy isn't what it used to.
-
jschell wrote:
Because that isn't what Git is
Source control is one part of configuration management. To be precise, since this is what you are after, let's call it a distributed version control system instead of configuration management system, even if one can argue a version control system in software development can handle about everything required by configuration management.
jschell wrote:
If we are talking about Git then it does not have a mechanism for dealing with independent deliverables which share code
Still do not understand what Git cannot do. How would you do that with Subversions ? Or ClearCase ? or SourceSafe ? or Vault ?
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus Entropy isn't what it used to.
Rage wrote:
Source control is one part of configuration management
Yes - so git is one part of configuration management.
Rage wrote:
Still do not understand what Git cannot do. How would you do that with Subversions
I can manage (check out, version, etc) only one directory under a tree of directories in Subversion. Git requires multiple repositories for the same ability.