git state: more cross-platform paths

use os.path.join instead of string building