git-repo/subcmds
Raman Tenneti 7954de13b7 sync: Added logging of repo sync state and config options for analysis.
git_config.py:
+ Added SyncAnalysisState class, which saves the following data
  into the config object.
  ++ sys.argv, options, superproject's logging data.
  ++ repo.*, branch.* and remote.* parameters from config object.
  ++ current time as synctime.
  ++ Version number of the object.
+ All the keys for the above data are prepended with 'repo.syncstate.'
+ Added GetSyncAnalysisStateData and UpdateSyncAnalysisState methods
  to GitConfig object to save/get the above data.

git_trace2_event_log.py:
+ Added LogConfigEvents method with code from DefParamRepoEvents
  to log events.

sync.py:
+ superproject_logging_data is a dictionary that collects all the
  superproject data that is to be logged as trace2 event.
+ Sync at the end logs the previously saved syncstate.* parameters
  as previous_sync_state. Then it calls config's UpdateSyncAnalysisState
  to save and log all the current options, superproject logged data.

docs/internal-fs-layout.md:
+ Added doc string explaining [repo.syncstate ...] sections of
  .repo/manifests.git/config file.

test_git_config.py:
+ Added unit test for the new methods of GitConfig object.

Tested:
$ ./run_tests

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

Tested it by running the following command multiple times.
$ repo_dev sync -j 20
  repo sync has finished successfully

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

Bug: [google internal] b/188573450
Change-Id: I1f914ce50f3382111b72940ca56de7c41b53d460
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/313123
Tested-by: Raman Tenneti <rtenneti@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Xin Li <delphij@google.com>
2021-07-29 19:20:57 +00:00
..
__init__.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
abandon.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
branches.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
checkout.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
cherry_pick.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
diff.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
diffmanifests.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
download.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
forall.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
gitc_delete.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
gitc_init.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
grep.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
help.py repo: refactor help output handling 2021-07-28 05:38:34 +00:00
info.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
init.py superproject - More friendly user message when superproject failed. 2021-07-14 00:41:36 +00:00
list.py list: add a --relative-to option 2021-07-27 06:20:52 +00:00
manifest.py manifest: Support ignoring local manifests with 'repo manifest' 2021-07-20 04:56:12 +00:00
overview.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
prune.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
rebase.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
selfupdate.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
smartsync.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
stage.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
start.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
status.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
sync.py sync: Added logging of repo sync state and config options for analysis. 2021-07-29 19:20:57 +00:00
upload.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
version.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00