I'm finally putting up my MUD on Bitbucket/Github via git and I'm wondering about how others handle some things like:
Do you push player files? Do you push area files? Do you automate git commit/push, since area files are constantly being changed by builders? If you have a dev & live environment, do you make multiple repos for that?
When I was still running an active game I kept backups via subversion (dated…!) and kept them of everything. Player files, areas, code; the works. Made it very handy to rollback a pfile if a bug corrupted it or some other issues happened. I don't really see any reasons to not push all your data as long as it's kept private / restricted.
I don't recommend the player files repo. There would be limited usefulness in a complete rollback of all files. Typically, you only want to roll back one or a few, but the nature of git makes that more complex than it should be. You can get the functionality you need via simpler mechanisms - such as the old-fashioned backup script (which transfers off-site daily).
Yes, to pushing area files to their own repository, but I haven't tried an automated approach for it.
As to repositories for separate dev/prod environments, that depends entirely on whether you're making changes to production (I'd argue you shouldn't, but that's an argument for another time). If you're not, prod doesn't need its own repositories for most things (unless you're versioning the player files, or wish to do so with other constantly changing data).
Lastly, I second Tyche's questioning of Github. Github is a terrible thing. Friends don't let friends use Github.
I love github, so I don't know what the negativity towards it is all about.
Security issues, horrible UI, and minimal user management configuration options (particularly at the organization level)…
I know Github inside out and backwards. I've dealt with it professionally. I have many reasons to hate it, but especially for its security issues.
I like it's security, great UI, and user management configuration options.
Yeah, I also know it inside out and backwards. I deal with it professionally. And I have many reasons to love it. Notice I didn't really make any specific points.
I prefer tychehub over github. It is free and has unlimited private or public repositories. It has excellent security and backups. It can be highly customized and tightly integrated with other services running in the tyche cloud.
The only thing that bothers me about tyche cloud vs. other Cloud Providers is their storage media. I mean, I appreciate using time-tested hardware, don't get me wrong….but punch cards?
26 Mar, 2013, quixadhal wrote in the 11th comment:
Votes: 0
If your repository is private, push everything so you can do a full restore when your machine goes belly up.
If it's public, only push what you don't mind people seeing. You may wish to disable all but a few test character data files. You might want to exclude some areas or certain puzzle-type things.
If that's the case, I'd probably make two seperate repositories… One for the live system that pushes everything to a private/local backup, and the other for public consumption that excludes sensitive data, and pushes to a public repository.
I've often considered linking git or subversion into the mud. So when you create/change an object via the in game editors, it's reflected in source control.
I've often considered linking git or subversion into the mud. So when you create/change an object via the in game editors, it's reflected in source control.
I've thought that would be a very interesting idea, but I was never sure how to do it exactly for the database in a meaningful way.
27 Mar, 2013, quixadhal wrote in the 14th comment:
Votes: 0
If you use older versions of PostgreSQL, you can enable "time travel" on a table, which makes it keep track of every update/insert/delete so you can do a select on the table for a given timestamp, and it will return the data that was there at that time. It'd depreciated now (not enough people used it), but I think there's some contrib stuff that emulates the behavior.
You could also have a stored procedure that queues up a future dump and keep that dump in git. Obviously, you'd not want to do that for every write, unless you want your database to be really slow. :)
If you're using an LpMUD, it's not hard to make in-game commands to run external binaries, so you could have commands to commit changes, rollback to earlier versions, view the commit log, etc. Those could be auto-invoked by any OLC or in-game editors as well.
I prefer tychehub over github. It is free and has unlimited private or public repositories. It has excellent security and backups. It can be highly customized and tightly integrated with other services running in the tyche cloud.
That's all fine and dandy, but it's not available to the masses.
I wouldn't store data for a live game on GitHub, but I think it's a perfectly good place for code provided that you have an open-source license or pay for a private repository. As to security, anybody that gets their hands on your code can steal it. MUD codebases probably have almost zero commerical value really except as proof that the developer has some facility with code.
28 Mar, 2013, Rarva.Riendf wrote in the 17th comment:
That's all fine and dandy, but it's not available to the masses.
Sure it is. Anyone who can access github can also access tychehub. The point is that it would be just as easy for Zeno to set up zenohub. No creepy looking kitten things or advertisements on tychehub either. ;-)
That's all fine and dandy, but it's not available to the masses.
Sure it is. Anyone who can access github can also access tychehub. The point is that it would be just as easy for Zeno to set up zenohub. No creepy looking kitten things or advertisements on tychehub either. ;-)
Unless I misunderstand I was pointing out that we don't have access to your setup and therefore would have to depend on our own security, etc. If you mean something other than your personal private setup, please feel free to elaborate.
I suspect he means that you should just set up a git repository and push to it on a remote server of some kind. It's not easy nor free to create a platform similar to github, so it's like saying dropbox is lousy, make your own lawlbox by buying an external harddrive.
Do you push player files?
Do you push area files?
Do you automate git commit/push, since area files are constantly being changed by builders?
If you have a dev & live environment, do you make multiple repos for that?
[EDIT] It's private, yes