If you’re leading the project and control the git repository:

Take back control. If this guy is making commits you don’t like without consulting you, remove his direct commit access. He can fork the project and make pull requests to merge his commits. Thats how open source should work until a user builds up trust. You don’t need to, and shouldn’t, give full access right away.

If somebody else controls the repo:

Express your concerns to the person who’s in control, and encourage a more disciplined process for planning and approving changes. If the leadership is not amenable to a process, then you can choose to accept the status quo and keep contributing, you can fork the project and work on your own version (bringing along anyone who agrees with you), or you can choose to leave and work on other things. In any case you are not required to continue to deal with this.

Deal with it

Deer Hunter answers (15 votes):

Please forgive my bluntness, but your post reads like a rant.

You say it’s the other guy who wants mindless changes, but then you contradict yourself when talking about this new shiny Java program of yours.

Take a break; it’s not a one-way street, please try to find compromises (if you want to continue working on the project—forking is the easiest decision but it won’t lead you anywhere useful, although it may stroke your ego).

Please also think thoroughly about the division of labor in the project—turf wars are inevitable if you don’t have clean boundaries telling you who’s competent at what. Yes, you have to trust other people’s judgment sometimes.

Take Google’s advice

Kurtosis answers (4 votes):

Google had a couple of tech talks about this a few years ago. Watch them: here, and here. In a nutshell:

  1. Comprehend: Understand your community’s motivation to work on your project vs all other opportunity costs, and preserve those reasons.
  2. Fortify: Build a healthy community with social norms of politeness, respect, trust, and humility.
  3. Identify: Look for tell-tale signs of poisonous people (too many to list, but if you’re asking this question then you probably already know many of them).
  4. Disinfect: Be calm and stand your ground, remain unreactive to insults, slights, challenges, disrespect, etc., and persistent in reinforcing your community norms.

A comprehensive written outline is available too if you prefer to read instead of watch.

Find more answers or leave your own at the original post. See more Q&A like this at Programmers, a question and answer site for professional programmers interested in conceptual questions about software development. If you’ve got your own programming problem that requires a solution, login to Programmers and ask a question (it’s free).