|
Okay, I follow you now. They tend to hide behind other vendors if they are spending $$. But the developers tend to play around, and licensing of this sort is so far off the radar...
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Agree 100% on the license. Especially with the older licenses. Include and enhance the wrong “open source” component and you might have to disclose your whole product.
Also the free for development but pay for production licenses can bite you.
|
|
|
|
|
Yes I have seen both of those also.
|
|
|
|
|
I was using SVN briefly when I was on first job after university so I might not remember it correctly but I remember frustrations it was giving me and I hated it with every piece of my body. Using GIT was a breeze and I instantly got the mental model, so I might be biased for using it for last 14 years and remembering SVN workflow as workflow from hell. So I have a lot to write on the topic - because I feel that GIT is just so much better and it makes me much better developer and development so much easier.
Let's start with not needing connection to the server to be able to create commits. When internet is down I still can create commits move them around and publish to server when I want not when SVN wants. Also if I have it locally it is much faster to commit anything than over the network. (almost no one uses fully distributed workflow so yeah)
Branching is something you just do in GIT and you don't have to ask anyone because branches don't live on the server. I can do 10 commits then go back to starting point and make new branch in matter of minutes and have different approach developed, I can delete local branch that I don't like and publish stuff I do like. No one will ever see it.
Conflicts, I can fetch changes from remote repository and have my local branch separate, I can keep on working on my stuff until I want to merge things while also having possibility to easily switch to. With SVN I am forced to deal with stuff even when I am half way done but I also want to check what is there so I could prepare for it.
In general mental model for having undo outside code editor that I can view and cherry pick, staging chunks of files to move parts of my development outside of IDE - because some things can be added by IDE and I can control what I publish in perfect way gives me ease of mind. Where SVN tooling was rudimentary at best, maybe it changed as I not used it.
|
|
|
|
|
"Let's start with not needing connection to the server to be able to create commits"
This is the key difference that is NOT well explained when comparing GIT to SVN. The fact that you can have all of the source control actions local including comments and what not falls under what I would call a "useful feature."
In my shop, any developer can create branches and tags and have done so for years. So, when people say "branching is a breeze in GIT as compared to SVN" no brilliant flash of the obvious came to mind. The only thing that MUST be done as an admin is to create a new repo.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Yeah that is for me "distributed" part that is basically killer feature.
Unfortunately people throw "distributed" around like everyone should be mailing patches to Linus himself and other contributors just like it is some holy grail - but no one uses it like that so everyone only gets more confused.
|
|
|
|
|
With git, you get two vcs for the price of one. You have a local one and probably a remote one.
At work asking for a repo was heavy paperwork.
With svn I had no opportunity to put my small projects into version control.
With git I can create a local repo without involving paperwork or someone from the sudoers group.
In git, the master repo can be protected by using pull requests instead of just giving rights to push into the master repo.
|
|
|
|
|
to be fair, that's not an svn issue - it's a process issue. For our SVN server, you want a repo, we RDP in and make a repo, though I see the point that it's a manual operation. We don't have a lot of developers just wanting random repos, so valid point.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
I am an application operator, so I do not have Administrator / root rights anywhere, I don't have remote login rights, etc.
With centralized VCS, I need a sudoer to create a repo.
With git + TortoiseGit, I can make a local repo anywhere, and at least track my scripts.
This is centralized vs. distributed, svn vs. git.
(At home I use svn, because, as we say here, everything is beautiful at home, 6 cores, 12 threads, 32 GB of RAM and sudo rigths )
|
|
|
|
|
I used to use SVN years ago. I recall there were a few minor annoyances, but by and large it was a good bit of kit, and TortoiseSVN was a good UI. In more recent years I've used Mercurial. Like Git it lets you have one (or many) local copies of everything on the server, which can be handy for speed or if you might have periods where you can't access the server. It also means that if the server catches fire, there's a fair chance people will have a copy of the source code somewhere. TortoiseHg has Mercurial covered. It's a good UI and like SVN, things work pretty smoothly most of the time.
Fairly recently our team moved to Git. So far it seems very much that "Git" is rhyming slang. The Tortoise offering offers far less for Git. There are a lot of Git UIs out there, but it's tough to find a good one, especially if it needs to be free. Visual Studio does sort of okay on that front. As a result, I do a lot on the command line when using Git. Git's concept of branches, to me at least, seems far weaker than Mercurial's. It just seems to keep a record of the latest changeset for each branch and keeps a record of the parent changeset. Finding your branch's parent branch is at best tricky, at worst impossible. For me, Git has few if any advantages over Mercurial, and as a bonus has an unpleasant learning curve and unnecessary complexity. The whole world apparently disagrees with me, but I wouldn't recommend it to anyone as long as Mercurial is available. But if SVN is serving you, there's no shame in sticking with what you know, either. You could give Git or Mercurial a test drive on a personal/mini project if you want to see if the grass is truly greener (spoiler: with Git, it's less grass and more wasteland with bonus fly-tipping).
|
|
|
|
|
Subversion is not distributed. What this means practically is that there's no command like "git push", and this means that committing requites a working network connection to the source control server.
You can't rewrite history, because every commit immediately goes to the server. You can't commit when not online, so you're forced to be on a reliable connection if you want to have small, clean commits. And if the upstream subversion server dies, the history is gone, where with git, every client that clones with the default options has a full copy of the history.
There are other subtleties, but the above are a large part of why got was created for and adopted by Linux kernel maintainers by Linus himself.
------------------------------------------------
If you say that getting the money
is the most important thing
You will spend your life
completely wasting your time
You will be doing things
you don't like doing
In order to go on living
That is, to go on doing things
you don't like doing
Which is stupid.
|
|
|
|
|
Git is an excellent tool for a very specific use case that 99.9% of projects don’t fall into. It’s great if you have a massive source base with many geographically dispersed contributors who don’t always have reliable Internet connectivity. Vastly overcomplicated, IMO for anything else.
|
|
|
|
|
Whenever I want to use source-control, I use my SVN that is installed on my own server.
However, I have used it with production projects in the past and it works just fine for concurrent development and anything else one may need.
Git is Microsoft's replacement where everything is saved online, unless you install Git to a local server. Many don't, so Microsoft gets access to a lot of the source-code that is part of Open Source projects.
I find SVN very straight forward to use, once I figure out the links that I have forgotten. However, Git is a completely new ball of wax that I would rather pass on...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Is Git superior to all of those systems that came before it? Maybe, but it doesn't matter. What's important is all of the tooling and devops processes that are now based on Git and the services that have been built around it. That's what makes it essential for most software/IT shops these days. A few years ago I made a tutorial for our users who had the same question as you...what is this and why should I care?
|
|
|
|
|
Greetings,
I have to say it ...
Its time to Git goin....
Cegarman
document code? If it's not intuitive, you're in the wrong field
Welcome to my Chaos and Confusion!
|
|
|
|
|
I've had the same thought for awhile now. I loved SVN and sometimes even went as far as copying the server's SVN folder to recreate the history & branches anywhere else in case I needed to. It was quite elegant otherwise (and being a developer of traditional closed-source commercial software it was just perfect).
I did everything in command line then and I still do with GIT, but man that thing can lead you to headaches (that most of the time can only be resolved via command line).
Probably GIT's only two advantages are:
1.- It's harder to f*** up when you forget to push and you get lost in your thousands of commits. You just git clone somewhere else and start comparing copies in the worst case scenario.
2.- I don't have to cron a backup of the server side SVN repository to backup the entire history & branches...git clone is precisely that.
|
|
|
|
|
The point of GIT, and what it's trying to solve basically boils down to this:
1) The repository lives on your local OS file system. What that offers is a way to version control anything you want (more on text vs. binary ahead), and can sneaker net the entire repository with the copy command without losing version information of changes! All of the deltas and history are all contained in a nice neat folder named .git.
2) You can also (instead of sneaker net) host the source code on a remote server, which allows anyone with the necessary privileges to pull or commit changes.
3) You can apply filters on what files are committed (checked-in for SVN/SourceSafe users) using the .gitignore file. This text file lets you filter out compiler files (e.g. .objs) and auto-generated files (e.g. files that change by the build process and cannot/should not be modified).
4) The real power comes in with the versioning. Every commit from the first repository creation is demarcated with a SHA. Git SHAs are unique identifiers for commits, files, and other objects in a Git repository.
5) What can you do with SHAs? You can branch off of anywhere to create a separate set of commits unique to that branch. Example: You might want to branch at a project release point, so that development can continue while changes are frozen.
Here is where real power lies. Devs have the ability to continue to make commits to the branch (e.g. a QA branch when devs get feedback on bugs to make fixes), while development continues along the main line. When the QA branch is blessed and has all of the fixes necessary to promote to release, the changes can be merged back into the main line. While most of that can be automated, some user interaction might (often will) be necessary to resolve conflicts.
6) In projects of 2 or more devs, typically there are multiple concurrent branches. Example: Development, QA and Release. Depending on the shop, some choose to branch to make a latest QA, some merge the latest dev line into a separate QA line. There are variations on the theme, but the takeaway is that you can make Git adapt to your dev culture, and not the other way around.
7) Lastly, there are "stupid Git tricks" that can make life easier (and more complicated, depending on your perspective). Example: One can Rebase to get to a "clean" state. A rebase will simply drop merge commits from the todo list, and put the rebased commits into a single, linear branch. Rebase, along with Merge, are just Git commands that specialize in integrating changes.
8) There are many 3rd party utilities for integrating with Git. You mention Visual Studio as one example, but there are many GUI interfaces (e.g. SourceTree) as well as command line (e.g. Tortoise Git). The beauty of Git is that, once again, devs aren't locked into using only one Git tool... you can choose the GUI you like, or drop down to the command line. The changes, commits and pulls still behave the same.
9) Git is typically used to provide revision control on text files, but can be used on binary files as well. Once could imagine a watermark or binary file where the actual bytes matter. You would then want to revision down to the byte level.
Git is a relatively straight forward tool for revision control management that is deployed across many OS platforms to provide uniformity. You only need to learn Git once -- you then know how it works on Windows, Linux and the MAC (or any other OS/machine environment that supports it).
|
|
|
|
|
Hi All,
Got a telling off for working on prototypes at my desk (you have one small explosion, which doesn't even set the fire alarm off) and you get sent to Elba or in my case a desk on the other side of the room!
Well at least I am now not overlooked by seniors! Pluses and Negatives...
modified 13-Feb-24 9:55am.
|
|
|
|
|
|
I started it a while back, but I couldn't progress well. I could find out the logic and I had the bad luck of finding mostly morons that didn't like new players.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Could be worse, could be the basement.
|
|
|
|
|
On a team one time that was in the basement. Very large room and my team was the only ones down there.
Then the renovations on the other part of the room started.
Jack hammer for a week didn't bother me.
But then they started up with the nail guns. I ended up going home after a couple of hours of that.
|
|
|
|
|
I hear Elba is nice this time of year.
|
|
|
|
|
explosion?
no video then it didn't happen!
true story - I worked at a USAF electronic warfare facility back in the 80s. One contractor there tossed in a bag of popcorn into the microwave and hit the wrong time button. Back then, the microwaves were HIGH power. So when the bag caught fire, triggered the smoke alarms, etc. Two buildings (800+ people) had to be evacuated, the base fire department came in, MPs were securing the facility, etc.
The Colonel was NOT pleased.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Makes a loud SNAP followed by smoke & swear words seem mild...
|
|
|
|
|