sync: Remove '_' from the repo.syncstate.* keys when saved to config.

GitConfig doesn't save keys if the keys contain "_" characters. Some
of the options like mp_update, use_superproject have underscores.

This fixes issue with previous_sync_state missing some of the options.

Tested:
$ ./run_tests

$ repo_dev init --use-superproject -u https://android.googlesource.com/platform/manifest

Tested it by running the sync command multiple times and verifing
previous_sync_state and current_sync_state have the same keys.

$ repo_dev sync -j 20
  repo sync has finished successfully

  Verified config file has [syncstate ...] data saved.

Bug: [google internal] b/188573450
Change-Id: I16b52a164f9dd1633d7dad1d8cf6b151c629fcb1
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/313242
Reviewed-by: Xin Li <delphij@google.com>
Tested-by: Raman Tenneti <rtenneti@google.com>
diff --git a/git_config.py b/git_config.py
index 05d824c..d882239 100644
--- a/git_config.py
+++ b/git_config.py
@@ -798,6 +798,7 @@
     if value is None:
       return
     sync_key = f'{SYNC_STATE_PREFIX}{key}'
+    sync_key = sync_key.replace('_', '')
     if isinstance(value, str):
       self._config.SetString(sync_key, value)
     elif isinstance(value, bool):
diff --git a/tests/fixtures/test.gitconfig b/tests/fixtures/test.gitconfig
index e3f51db..d71f8e7 100644
--- a/tests/fixtures/test.gitconfig
+++ b/tests/fixtures/test.gitconfig
@@ -12,7 +12,7 @@
 	intm = 10m
 	intg = 10g
 [repo "syncstate.main"]
-	synctime = 2021-07-29T19:18:53.201328Z
+	synctime = 2021-07-29T22:07:43.463365Z
 	version = 1
 [repo "syncstate.sys"]
 	argv = ['/usr/bin/pytest-3']
@@ -20,3 +20,4 @@
 	test = false
 [repo "syncstate.options"]
 	verbose = true
+	mpupdate = false
diff --git a/tests/test_git_config.py b/tests/test_git_config.py
index 44ff597..faf12a2 100644
--- a/tests/test_git_config.py
+++ b/tests/test_git_config.py
@@ -110,9 +110,11 @@
     superproject_logging_data['test'] = False
     options = type('options', (object,), {})()
     options.verbose = 'true'
+    options.mp_update = 'false'
     TESTS = (
         ('superproject.test', 'false'),
         ('options.verbose', 'true'),
+        ('options.mpupdate', 'false'),
         ('main.version', '1'),
     )
     self.config.UpdateSyncAnalysisState(options, superproject_logging_data)