As for the "server" misunderstanding, the thing with decentralized version control systems (like git and mercurial), there's no central repository. The status quo repo is whatever repo you decide will serve as so. There are many ways to set this up, including something that exactly resembles how you're used to work with say, SVN.

CVS was fine for us for a long time too, but didn't seem to cope too well with refactoring package names. At a fundamental level I just grokked SVN as well - it works largely entirely as I expect a source control system to work.

Whereas, as OrangyTang says, git works largely like a computer thinks and pretends that people aren't actually using it.

The thing with both CVS and SVN is I didn't even need to read a tutorial to learn how to use it for 95% of my day-to-day operation, and it took me about 10 minutes to explain to Chaz and Dob how it works. git just baffles everyone, as evidenced by the need for all the explanations, tutorials, books, faqs, etc.

The thing that I absolutely hate about SVN (or any other non-DVCS) is how long it takes to a) show the revision log b) do a diff to a previous revision. That's the two features I need most, after update/commit (pull/push in Git). It takes forever and I'd use Git even if it was twice as complicated, just for its speed alone.

I agree Git is not user-friendly at all, but its target group is developers. I even use it on Windows, with no issues. If you hate cmd, TortoiseGit is as simple as TortoiseSVN for shell integration and Git plugins for Eclipse/IntelliJ are in excellent shape.

Most of all, Git saves me time and that's the most precious resource I have right now.

Hm, SVN doesn't seem unbearably slow to me to do diffs or give me revision logs. I mean, it takes a few seconds, but then again it is running over ssh to a server thousands of miles away. Are you really that impatient that an operation you don't do continuously isn't worth a short wait?

I feel a rant coming on though... developers are users. Just coz I code doesn't mean I like things being difficult. In fact I much prefer the opposite! I've got too little time to keep figuring things out. I just want stuff that works intuitively and simply!

I just timed it with LWJGL. 8 seconds to show the log, 17 seconds to do a diff (on GLContext), 25 seconds total. I don't know on what server the LWJGL repo is hosted on, but it's obviously slow. The thing is, it doesn't matter. Something that should be instant takes a considerable amount of time (a few seconds in the best case) and is dependent on the central repo being available. You can't do a diff if the server's down or you're working offline.

I agree that all tools should be user/developer friendly. That's why we use IDEs (I'd probably change profession if IDEs didn't exist). I'm just saying that on the difficulty scale git doesn't go that high. I've used shittier tools. The only difficult thing about git is that it's different. The basic concepts take some time to understand and the commands have unfortunate names. Linus could have picked more familiar ones (e.g. pull could have been update and push could have been commit, to match SVN), but he just didn't care.

I may have mentioned this before.... I love bitbucket! I just use git to dump my nightly progress and share my code with my (patient) family members. It honestly can't get any easier to use a version control system. OK, so I have to go into some fake unix thing and type 'git push' each night but that hardly counts as hard.

You know if the game can get the data via whatever method, its really easy for anyone who can be bothered to run a decompiler to do the same. Just look at starCraft. Took almost all of about 3 days to have all the graphics ripped from their "package" format and even less time for cracks and cheats.

So what what was the point?

I have no special talents. I am only passionately curious.--Albert Einstein

The only reason I've got my own .jgimage format is because it was quicker to write a loader and saver for it than it was to try and write a png file loader and saver back in the day when I didn't use any AWT code. Nowadays I'm shipping AWT anyway so it's not so important any more but I've just left it in there - there are still places I envisage being that don't involve AWT. I'm looking at a headless JRE on Raspberry Pi at the moment but it's just been thoroughly broken by Sun and won't run any more on the latest Debian for RPi, so I'll have to wait a bit longer. My plans are to port the bare minimum bits of LWJGL onto SDL so I can access the framebuffer and mouse/keyboard stuff without having to start X and lose loads of RAM and probably performance too.

As for the obfuscated jars... well, it's a massive pain debugging when stacktraces are obfuscated, and let's face it my code is barely described as "complex". I don't write cutting edge 3D technology. It's just sprites. Any fool can do sprites. If you have to copy my code to make a game you're not going to get very far

Programmers want to place a much greater importance on code than is really the case. Anyone that can steal AND use your code (for real) can most likely write the same thing from scratch in less time than figuring out how your stuff works.

Programmers want to place a much greater importance on code than is really the case. Anyone that can steal AND use your code (for real) can most likely write the same thing from scratch in less time than figuring out how your stuff works.

Young programmers specifically I'd say. The more experienced dev knows only too well that what he's doing tends to be far from innovative. On top of that code is only a means to an end. Its not like wooden planks, some glue and a couple of nails are worth much, its the completed product (dog house, whatever) that is something you can sell.

Either it works in a beautifully elegant and simple GUI in Eclipse or it doesn't exist.

Cas

I can understand that you want to use simple, polished tools and don't want to waste time with someone else's beta-quality unpolished projects, but on the flip side you've taken this attitude too far into anti-learning, anti-intellectual, stubbornness, and laziness. Some technologies are actually worth a serious learning investment, and this is one of them.

Git has real innovations over SVN. I'm not the absolute best person to articulate them yet, but this isn't just empty buzz, and a hollow new trend. It's really a better product than SVN ever was.

There is a learning curve. This isn't a $0.99 mindless iPhone game, you are expected to do textbook learning to get the full advantages from this. Any good git user is fully comfortable and conversant in the command line interface and understands the internals, and uses the GUIs and IDE integrations as optional conveniences.

If you are going to be a programmer for a long time, it's worth the investment of learning git at a deeper level, and becoming a power user. Ideally, one would know the high level concepts of git including the snapshot system, Merkle trees, branching, merging, conflict resolution, fast-forward merges, etc.

I'm wicked and I'm lazy. I'd use git if all the complexity was hidden away behind a user interface that just worked. That's why I use Eclipse in the first place. It's why I use Windows in fact. And Java. All the hard stuff just works, and I really don't care how it works just that it's really easy to work out what to do even when you don't know how to do it. I'm not into anti-learning or anti-intellectual, I'm into getting stuff done without fighting my tools. I like it when computers try to help instead of hinder me. I've got precious little time to work stuff out, and even fewer brain cells.

I want to use git, but it seems to require too much beard. I shall grow my beard again and see if git agrees with me in a few weeks time.

Why not mercurial? But a lot of people have a hard time moving from centralized to distributed VC. I didn't so much because i was trying to use SVN as a distributed VC, and it failed badly... I even ended up with a corrupt repo a few times.

Why did i choose git? Well it was simple. It was installed on the machines at work while mercurial wasn't. Linus's only complaint of mercurial was it was too slow for the size of linux. Hardly something us mere mortals need to deal with.

As for the repo tool not forcing you to be centralized (you can be off course), not sure how that make something unfriendly?

I have no special talents. I am only passionately curious.--Albert Einstein

I'm having another bash at git. So far I've managed to share a project into a local git repository, and even managed to push it to my server over ssh, after a barrage of hopelessly obscure dialogs with help buttons that really amusingly do nothing, weirdo error messages from git (wtf is a "funny ref?"), and some total guesswork.

What worries me is what happens when Chaz works on the same project concurrently and does a push. What happens when we've both diddled the same thing? How does git manage conflicts?

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org