You have to stop thinking of it as your software. Let the competition improve
it, advertise it, and so on. If they do that it increases your potential
market. It might get forked although that is probably a bad business move on
their part. I've seen it done enough time to realise it is not an advisable
move.
Maintaining a separate code base adds unnecessary expense. If the code is
freely available and developed in a community oriented manor it will ensure
your software dominates in the market.
Ultimately you will end up with the contracts for coding new features,
providing low level support, etc. Even if those features are being paid for
by your competition (since they are bigger and advertising support).