Is there a way to make git alert me that a conflicting merge will happen, if I commit my change?
Quora informs me People are searching for a better answer to this question. The problem lies with the question Conflict with what? Conflicts can arise with changes in someone else repository that you can see until they italic push their italic conflicting change. The only thing you can do about that is 1) don make gratuitous changes like alphabetizing all the functions in a file and 2) check in and push your changes promptly. Then itll be the other person job to worry about conflicts. And they can reduce that by pulling in changes regularly. However let consider the other case where you do italic have access to the potentially-conflicting changes. Let say you have release branch R13 and youre working on feature branch F_bigger and youre concerned that your change might conflict with changes on branch F_smaller. Let also assume neither have been merged to R13. This doesn really matter to the procedure but it might make it easier to think about. So the first thing you do is mit your change italic . Don even think about it just do it. But don push italic your change yet. Were going to do some investigation first and maybe some cleanup. Identify themits youre concerned with conflicts. This could be the entire F_smaller branch or specificmits made on that branch. The strategy depends on the scope and reasons for your concern. If it specific files in question look formits that modify those files. If it specificmits use git cherry-pick mit-id-1mit-id-2 italic Not work? Decide what to do about it. Talk to our coworker. Hold meetings. Escalate it to product marketing do we want it bigger or smaller?nnBut if you don cancel the feature in the end youll resolve the merge conflicts. Or sometimes rethink your approach and discard this branch and your recentmit and do something else. That however will be unusual. Normally youll resolve them rather than avoid them. Go back to your branch again git checkout F_bigger Delete your temporary branch gi branch -D T_size nAnd youre done. It really pretty straightforward. A good rule of thumb in git is First make sure you know where you are. git stash if you have changes youve not checked in. Create a branch and work there. Then try it and see what happens. Then understand the result. Lather-rinse-repeat.
Why isn't Git used by more video game developers?
Before jumping into any discussion there are a few things I have to make clear. I just deployed git for my team for the last six months (or more Im not even bothering to remember the exact date) so you know that this is not the conclusion after two days. Some background details We use Unity. The team has 3 programmers 3 game designers 1 artist who collects all of the work of other artists and 1 animator. The team has beenfortable using SVN for the last nine years. I have three years of experience with git so that I amfortable delivering training for members. Branching in SVN is really the pain in the ass while in git I do it effortlessly so that is the motivation. So long story short after half a year working with the team I believe that git core approach is not so suitable for game development. In other words the benefits that git branching brings can make up to its limits. Our project structure would look like this Project Name Art 1 2D 2 3D 2 Animation 2 Docs 1 Unity Project 1 Each 2D folder would have separate folders for artists. They store their work within this folder which is convenient because our art is separated piece by piece and being worked on individually. Artists just need to check out their own italic folder and don have to concern about other guys work would slow down their update. They canmit new work into the server don have to update their workspace to the newest state. SVN allows that but git doesn. Git needs you to pull back literally every folder in the repo. So every afternoon before youmit your new model or new concept you have to wait for half an hour to pull the newest state. This is not productive and overlyplex. I understand why the art team hate git. Don tell me to set up submodules for every art guy that too time-consuming and not big scale friendly. Say we have three projects running at the time and twenty artists that would mean sixty repositories three for each artist. Madness. So I have to decide to leave the art team with SVN and use git for the Unity project only. This adds a layer ofplexity as there are two VCSes being deployed. The team working directly with the Unity Project suffers quite the same. Countless conflicts for binary files and scene files happen all the time. To be fair this happens with SVN as well but with git as you have to pull the newest state before pushing yourmit things are way moreplicated. The game designers suffer from this the most as they are less technical than the programmers and they have temporary work on their workspace that should not bemitted even locally. I still love git but after a reality check I have to admit that SVN is more suitable for a thing like a game project.
How much money do I have to pay to never ever see this dialog box again?
Enough money for you to be patient and wait until your documents sync.
Has anyone ever used Git to compose music collaboratively?
Git works with diff files. These work only well on formatted files. So yea you could use git to collaborate on a MusicXML document but binary files will not merge correctly.
What was the technology stack driving the original Ultima Online servers?
The client and server were both a motley hodge-podge of C and C++. By the time I was on the team (several months after the game shipped) we were running (in production AND development) on Linux servers instead of Solaris. There was very little in the way of load balancing really the team defined rectangular chunks of the world which were managed by areaservers. When you crossed a boundary between one of these areaservers and another your state (which included your character's representation their objects AND the state of running Wombat scripts that were attached to you -- think global variables here though nothing sexy like continuations) was packed up into a big blob and shipped to the new area. In terms ofmunication the protocol was all TCP. As Raph suggests the data riding on top of TCP was tuned byte-by-byte but not otherwise encrypted in any way at least not initially. Linux at that time (and Solaris too iirc) had a limit of file descriptors per process capping out at 256! And that only if you closed STDIN STDOUT and STDERR. That limitation required the deployment of player servers a kind of load balancer (connection load though not server load alas) which did some very simple sanitization and beyond that did nothing more than manage hundreds of connections (253 or so iirc per playerserv with many playerservs per shard -- enough for a few thousand players) tunneling traffic back and forth. As Raph also notes there were no databases originally involved in the storage of game state or player data for UO (disregarding analytics here) everything was kept in flat files. Backups worked by flagging a moment in time where no one was allowed to cross server-boundaries -- during that moment each areaserver wasmanded to fork() essentially duplicating itself in memory (it's moreplicated than this thanks to Copy-on-Write but let's simplify). After everyone had fork()ed the lock preventing boundary-crossing was cleared. Then each areaserv began to dump out its huge chunk of memory-state into a file on an NFS server. Those files were then all tarred together and kept as a backup of the state of the server. These heavyweight backups happened at half-hour intervals I believe. Server-boundary crossing edge-cases and race conditions persisted for a long time -- allowing for gold and items to be duplicated though I think we had largely eradicated the big ones by the time I had moved on to UO2. A lot of the heavy-duty simulation pieces in the game eventually got turned off or toned down to more smoke-and-mirrors implementations. A great example of one that was mostly non-functional by the time I joined the game was the city guards love pastries logic wherein cityguards (cops) would nonchalantly follow players who possessed pastries (donuts)... a lot of very cool stuff but also expensive in terms of simulation. Even monster vs. monsterbat eventually became gated by player proximity -- no fighting unless someone was around to see it.
Should binary files be stored in a Git repository?
Ill try to make it short and clear. In order to git clone italic mands to be quickly done (which will me run each time someone joins your project and each time someone already involve needs a clean start) your repo needs to store the less information possible. Binaries are way heavier than the code they arepiled from. There is close to no interest to have your binaries in the repo since it more convenient for the developers topile them themselves (they may depend on their config by the way). You don need to store the different states of a binary since their successive states don matter. Images are fine because you need them in your project they can be processed from other fils. You won have much use for the back-up features (except if some edition is made on them which can happen). But you should make an informed decision about that. For example I had to maintain a website during my previous job which was basically a blog. The database contained the articles that had already been written by the team managing it but the pictures used in these were stored in the project folder (which is logical) in 8 or more different formats (damn CMS). With thousands of articles in the db there was thousands and thousands of pictures stored. There is no way I would let that in the repo once I was assigned the project. Doing a clone of the project was taking forever most of the time sucked by files you wouldn need as a developer. On the other hand there is also no way I would exclude the regular s are to be kept and which are to be dropped.