Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package git-repo for openSUSE:Factory checked in at 2022-02-11 23:10:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/git-repo (Old) and /work/SRC/openSUSE:Factory/.git-repo.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "git-repo" Fri Feb 11 23:10:14 2022 rev:2 rq:953738 version:2.21 Changes: -------- --- /work/SRC/openSUSE:Factory/git-repo/git-repo.changes 2022-01-11 21:24:19.073171876 +0100 +++ /work/SRC/openSUSE:Factory/.git-repo.new.1956/git-repo.changes 2022-02-11 23:12:14.899438609 +0100 @@ -1,0 +2,14 @@ +Fri Feb 04 11:15:47 UTC 2022 - [email protected] + +- remove obsolete patch fix-python-readlink.patch +- Update to version 2.21: + * project: mark gc.log as safe to discard when migrating .git/ + * init: add an option --enable-git-lfs-filter + * init: make bad --repo-rev settings more clear + * project: Ignore failure to remove the sample hooks + * branches: Fix "not in" handling + * project: store objects in project-objects directly + * project: move --reference handling to project-objects + * test_project: use os.readlink instead of Path.readlink + +------------------------------------------------------------------- Old: ---- fix-python-readlink.patch git-repo-2.20.obscpio git-repo-2.20.tar.xz New: ---- git-repo-2.21.obscpio git-repo-2.21.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ git-repo.spec ++++++ --- /var/tmp/diff_new_pack.IIhTaY/_old 2022-02-11 23:12:15.311439800 +0100 +++ /var/tmp/diff_new_pack.IIhTaY/_new 2022-02-11 23:12:15.315439813 +0100 @@ -17,14 +17,12 @@ Name: git-repo -Version: 2.20 +Version: 2.21 Release: 0 Summary: The Multiple Git Repository Tool License: Apache-2.0 URL: https://gerrit.googlesource.com/git-repo Source: %{name}-%{version}.tar.xz -# PATCH-FIX-UPSTREAM fix-python-readlink.patch -- Path.readlink is only available on Python >= 3.9, use os.readlink instead -Patch0: fix-python-readlink.patch # SECTION tests BuildRequires: git BuildRequires: gpg2 @@ -42,7 +40,6 @@ %prep %setup -q -%patch0 -p1 # fix shebang sed -i -E "s|#!/usr/bin/env python.*|#!/usr/bin/python3|" repo run_tests # remove unnecessary document ++++++ _service ++++++ --- /var/tmp/diff_new_pack.IIhTaY/_old 2022-02-11 23:12:15.351439917 +0100 +++ /var/tmp/diff_new_pack.IIhTaY/_new 2022-02-11 23:12:15.355439928 +0100 @@ -2,7 +2,7 @@ <service mode="disabled" name="obs_scm"> <param name="scm">git</param> <param name="url">https://gerrit.googlesource.com/git-repo</param> - <param name="revision">v2.20</param> + <param name="revision">v2.21</param> <param name="match-tag">*</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.IIhTaY/_old 2022-02-11 23:12:15.375439986 +0100 +++ /var/tmp/diff_new_pack.IIhTaY/_new 2022-02-11 23:12:15.379439998 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gerrit.googlesource.com/git-repo</param> - <param name="changesrevision">98bb76577d9e7e0ffdeb643f1654ec006f6bbc8c</param></service></servicedata> + <param name="changesrevision">8e91248655acf1c8044ed8c1b265b804a99eb07f</param></service></servicedata> (No newline at EOF) ++++++ git-repo-2.20.obscpio -> git-repo-2.21.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/.gitignore new/git-repo-2.21/.pytest_cache/.gitignore --- old/git-repo-2.20/.pytest_cache/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/.gitignore 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,2 @@ +# Created by pytest automatically. +* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/CACHEDIR.TAG new/git-repo-2.21/.pytest_cache/CACHEDIR.TAG --- old/git-repo-2.20/.pytest_cache/CACHEDIR.TAG 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/CACHEDIR.TAG 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,4 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by pytest. +# For information about cache directory tags, see: +# http://www.bford.info/cachedir/spec.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/README.md new/git-repo-2.21/.pytest_cache/README.md --- old/git-repo-2.20/.pytest_cache/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/README.md 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,8 @@ +# pytest cache directory # + +This directory contains data from the pytest's cache plugin, +which provides the `--lf` and `--ff` options, as well as the `cache` fixture. + +**Do not** commit this to version control. + +See [the docs](https://docs.pytest.org/en/stable/cache.html) for more information. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/v/cache/lastfailed new/git-repo-2.21/.pytest_cache/v/cache/lastfailed --- old/git-repo-2.20/.pytest_cache/v/cache/lastfailed 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/v/cache/lastfailed 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,50 @@ +{ + "tests/test_editor.py::EditString": true, + "tests/test_editor.py::EditorTestCase": true, + "tests/test_editor.py::GetEditor": true, + "tests/test_error.py::PickleTests": true, + "tests/test_git_command.py::GitCallUnitTest": true, + "tests/test_git_command.py::GitRequireTests": true, + "tests/test_git_command.py::UserAgentUnitTest": true, + "tests/test_git_config.py::GitConfigReadOnlyTests": true, + "tests/test_git_config.py::GitConfigReadWriteTests": true, + "tests/test_git_superproject.py::SuperprojectTestCase": true, + "tests/test_git_trace2_event_log.py::EventLogTestCase": true, + "tests/test_hooks.py::RepoHookShebang": true, + "tests/test_manifest_xml.py::ContactinfoElementTests": true, + "tests/test_manifest_xml.py::DefaultElementTests": true, + "tests/test_manifest_xml.py::ExtendProjectElementTests": true, + "tests/test_manifest_xml.py::IncludeElementTests": true, + "tests/test_manifest_xml.py::ManifestParseTestCase": true, + "tests/test_manifest_xml.py::ManifestValidateFilePaths": true, + "tests/test_manifest_xml.py::ProjectElementTests": true, + "tests/test_manifest_xml.py::RemoteElementTests": true, + "tests/test_manifest_xml.py::RemoveProjectElementTests": true, + "tests/test_manifest_xml.py::SuperProjectElementTests": true, + "tests/test_manifest_xml.py::ValueTests": true, + "tests/test_manifest_xml.py::XmlManifestTests": true, + "tests/test_platform_utils.py::RemoveTests": true, + "tests/test_project.py::CopyFile": true, + "tests/test_project.py::CopyLinkTestCase": true, + "tests/test_project.py::LinkFile": true, + "tests/test_project.py::MigrateWorkTreeTests": true, + "tests/test_project.py::ReviewableBranchTests": true, + "tests/test_ssh.py::SshTests": true, + "tests/test_subcmds.py::AllCommands": true, + "tests/test_subcmds_init.py::InitCommand": true, + "tests/test_wrapper.py::CheckGitVersion": true, + "tests/test_wrapper.py::CheckRepoRev": true, + "tests/test_wrapper.py::CheckRepoVerify": true, + "tests/test_wrapper.py::GitCheckoutTestCase": true, + "tests/test_wrapper.py::NeedSetupGnuPG": true, + "tests/test_wrapper.py::ParseGitVersion": true, + "tests/test_wrapper.py::RepoWrapperTestCase": true, + "tests/test_wrapper.py::RepoWrapperUnitTest": true, + "tests/test_wrapper.py::Requirements": true, + "tests/test_wrapper.py::ResolveRepoRev": true, + "tests/test_wrapper.py::RunCommand": true, + "tests/test_wrapper.py::RunGit": true, + "tests/test_wrapper.py::SetGitTrace2ParentSid": true, + "tests/test_wrapper.py::SetupGnuPG": true, + "tests/test_wrapper.py::VerifyRev": true +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/v/cache/nodeids new/git-repo-2.21/.pytest_cache/v/cache/nodeids --- old/git-repo-2.20/.pytest_cache/v/cache/nodeids 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/v/cache/nodeids 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,186 @@ +[ + "tests/test_editor.py::EditString::test_cat_editor", + "tests/test_editor.py::EditString::test_no_editor", + "tests/test_editor.py::GetEditor::test_basic", + "tests/test_error.py::PickleTests::testExceptionLookup", + "tests/test_error.py::PickleTests::testPickle", + "tests/test_git_command.py::GitCallUnitTest::test_version_tuple", + "tests/test_git_command.py::GitRequireTests::test_equal_nonfatal", + "tests/test_git_command.py::GitRequireTests::test_newer_nonfatal", + "tests/test_git_command.py::GitRequireTests::test_older_fatal", + "tests/test_git_command.py::GitRequireTests::test_older_fatal_msg", + "tests/test_git_command.py::GitRequireTests::test_older_nonfatal", + "tests/test_git_command.py::UserAgentUnitTest::test_smoke_git", + "tests/test_git_command.py::UserAgentUnitTest::test_smoke_os", + "tests/test_git_command.py::UserAgentUnitTest::test_smoke_repo", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_false", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_invalid", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_true", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_undefined", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetInt_invalid", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetInt_undefined", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetInt_valid", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetString_from_missing_file", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetString_with_empty_config_values", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetString_with_true_value", + "tests/test_git_config.py::GitConfigReadWriteTests::test_GetSyncAnalysisStateData", + "tests/test_git_config.py::GitConfigReadWriteTests::test_SetBoolean", + "tests/test_git_config.py::GitConfigReadWriteTests::test_SetString", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_all_project_commit_ids_mock_ls_tree", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_invalid_branch", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_invalid_url", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_mock_fetch", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_mock_init", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_no_superproject", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id_from_local_manifest_group", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id_no_superproject_tag", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id_with_pinned_manifest", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_write_manifest_file", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_command_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_data_event_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_def_params_event_no_repo_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_def_params_event_repo_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_error_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_exit_event_result_integer", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_exit_event_result_none", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_initial_state_no_parent_sid", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_initial_state_with_parent_sid", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_start_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_version_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_no_git_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_non_string", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_with_filename", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_with_git_config", + "tests/test_hooks.py::RepoHookShebang::test_direct_interp", + "tests/test_hooks.py::RepoHookShebang::test_env_interp", + "tests/test_hooks.py::RepoHookShebang::test_no_shebang", + "tests/test_manifest_xml.py::ContactinfoElementTests::test_contactinfo", + "tests/test_manifest_xml.py::DefaultElementTests::test_default", + "tests/test_manifest_xml.py::ExtendProjectElementTests::test_extend_project_dest_path_multi_match", + "tests/test_manifest_xml.py::ExtendProjectElementTests::test_extend_project_dest_path_multi_match_path_specified", + "tests/test_manifest_xml.py::ExtendProjectElementTests::test_extend_project_dest_path_single_match", + "tests/test_manifest_xml.py::IncludeElementTests::test_allow_bad_name_from_user", + "tests/test_manifest_xml.py::IncludeElementTests::test_bad_name_checks", + "tests/test_manifest_xml.py::IncludeElementTests::test_group_levels", + "tests/test_manifest_xml.py::ManifestValidateFilePaths::test_bad_paths", + "tests/test_manifest_xml.py::ManifestValidateFilePaths::test_normal_path", + "tests/test_manifest_xml.py::ManifestValidateFilePaths::test_symlink_targets", + "tests/test_manifest_xml.py::ProjectElementTests::test_bad_path_name_checks", + "tests/test_manifest_xml.py::ProjectElementTests::test_group", + "tests/test_manifest_xml.py::ProjectElementTests::test_set_revision_id", + "tests/test_manifest_xml.py::ProjectElementTests::test_toplevel_path", + "tests/test_manifest_xml.py::ProjectElementTests::test_trailing_slash", + "tests/test_manifest_xml.py::RemoteElementTests::test_remote", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_optional_project_doesnt_exist", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_project", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_project_doesnt_exist", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_project_one_remains", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_defalut_remote", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_remote", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject_revision", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject_revision_default_negative", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject_revision_remote", + "tests/test_manifest_xml.py::ValueTests::test_bool_default", + "tests/test_manifest_xml.py::ValueTests::test_bool_false", + "tests/test_manifest_xml.py::ValueTests::test_bool_invalid", + "tests/test_manifest_xml.py::ValueTests::test_bool_true", + "tests/test_manifest_xml.py::ValueTests::test_int_default", + "tests/test_manifest_xml.py::ValueTests::test_int_good", + "tests/test_manifest_xml.py::ValueTests::test_int_invalid", + "tests/test_manifest_xml.py::XmlManifestTests::test_empty", + "tests/test_manifest_xml.py::XmlManifestTests::test_link", + "tests/test_manifest_xml.py::XmlManifestTests::test_remote_annotations", + "tests/test_manifest_xml.py::XmlManifestTests::test_repo_hooks", + "tests/test_manifest_xml.py::XmlManifestTests::test_repo_hooks_unordered", + "tests/test_manifest_xml.py::XmlManifestTests::test_todict_empty", + "tests/test_manifest_xml.py::XmlManifestTests::test_toxml_empty", + "tests/test_manifest_xml.py::XmlManifestTests::test_unknown_tags", + "tests/test_platform_utils.py::RemoveTests::testMissingOk", + "tests/test_project.py::CopyFile::test_basic", + "tests/test_project.py::CopyFile::test_dest_block_symlink", + "tests/test_project.py::CopyFile::test_dest_block_symlink_traversal", + "tests/test_project.py::CopyFile::test_dest_subdir", + "tests/test_project.py::CopyFile::test_src_block_copy_from_dir", + "tests/test_project.py::CopyFile::test_src_block_copy_to_dir", + "tests/test_project.py::CopyFile::test_src_block_symlink", + "tests/test_project.py::CopyFile::test_src_block_symlink_traversal", + "tests/test_project.py::CopyFile::test_src_subdir", + "tests/test_project.py::CopyFile::test_update", + "tests/test_project.py::LinkFile::test_basic", + "tests/test_project.py::LinkFile::test_dest_subdir", + "tests/test_project.py::LinkFile::test_src_block_relative", + "tests/test_project.py::LinkFile::test_src_self", + "tests/test_project.py::LinkFile::test_src_subdir", + "tests/test_project.py::LinkFile::test_update", + "tests/test_project.py::MigrateWorkTreeTests::test_standard", + "tests/test_project.py::MigrateWorkTreeTests::test_unknown", + "tests/test_project.py::ReviewableBranchTests::test_smoke", + "tests/test_ssh.py::SshTests::test_context_manager_child_cleanup", + "tests/test_ssh.py::SshTests::test_context_manager_empty", + "tests/test_ssh.py::SshTests::test_parse_ssh_version", + "tests/test_ssh.py::SshTests::test_ssh_sock", + "tests/test_ssh.py::SshTests::test_version", + "tests/test_subcmds.py::AllCommands::test_help_desc_style", + "tests/test_subcmds.py::AllCommands::test_naming", + "tests/test_subcmds.py::AllCommands::test_required_basic", + "tests/test_subcmds_init.py::InitCommand::test_cli_parser_bad", + "tests/test_subcmds_init.py::InitCommand::test_cli_parser_good", + "tests/test_wrapper.py::CheckGitVersion::test_new", + "tests/test_wrapper.py::CheckGitVersion::test_old", + "tests/test_wrapper.py::CheckGitVersion::test_unknown", + "tests/test_wrapper.py::CheckRepoRev::test_verify_fails", + "tests/test_wrapper.py::CheckRepoRev::test_verify_ignore", + "tests/test_wrapper.py::CheckRepoRev::test_verify_works", + "tests/test_wrapper.py::CheckRepoVerify::test_gpg_initialized", + "tests/test_wrapper.py::CheckRepoVerify::test_need_gpg_setup", + "tests/test_wrapper.py::CheckRepoVerify::test_no_verify", + "tests/test_wrapper.py::NeedSetupGnuPG::test_empty_keyring", + "tests/test_wrapper.py::NeedSetupGnuPG::test_missing_dir", + "tests/test_wrapper.py::NeedSetupGnuPG::test_missing_keyring", + "tests/test_wrapper.py::NeedSetupGnuPG::test_new_keyring", + "tests/test_wrapper.py::NeedSetupGnuPG::test_old_keyring", + "tests/test_wrapper.py::ParseGitVersion::test_autoload", + "tests/test_wrapper.py::ParseGitVersion::test_bad_ver", + "tests/test_wrapper.py::ParseGitVersion::test_extended_ver", + "tests/test_wrapper.py::ParseGitVersion::test_normal_ver", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_get_gitc_manifest_dir", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_get_gitc_manifest_dir_no_gitc", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_gitc_init_parser", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_gitc_parse_clientdir", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_gitc_parse_clientdir_no_gitc", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_init_parser", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_python_constraints", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_version", + "tests/test_wrapper.py::Requirements::test_assert_all_new_python", + "tests/test_wrapper.py::Requirements::test_assert_all_new_repo", + "tests/test_wrapper.py::Requirements::test_assert_all_old_python", + "tests/test_wrapper.py::Requirements::test_assert_all_old_repo", + "tests/test_wrapper.py::Requirements::test_assert_all_unknown", + "tests/test_wrapper.py::Requirements::test_assert_ver_new", + "tests/test_wrapper.py::Requirements::test_assert_ver_old", + "tests/test_wrapper.py::Requirements::test_assert_ver_unknown", + "tests/test_wrapper.py::Requirements::test_corrupt_data", + "tests/test_wrapper.py::Requirements::test_format_ver", + "tests/test_wrapper.py::Requirements::test_missing_file", + "tests/test_wrapper.py::Requirements::test_valid_data", + "tests/test_wrapper.py::ResolveRepoRev::test_branch_name", + "tests/test_wrapper.py::ResolveRepoRev::test_explicit_branch", + "tests/test_wrapper.py::ResolveRepoRev::test_explicit_tag", + "tests/test_wrapper.py::ResolveRepoRev::test_full_commit", + "tests/test_wrapper.py::ResolveRepoRev::test_partial_commit", + "tests/test_wrapper.py::ResolveRepoRev::test_tag_name", + "tests/test_wrapper.py::ResolveRepoRev::test_unknown", + "tests/test_wrapper.py::RunCommand::test_capture", + "tests/test_wrapper.py::RunCommand::test_check", + "tests/test_wrapper.py::RunGit::test_capture", + "tests/test_wrapper.py::RunGit::test_check", + "tests/test_wrapper.py::SetGitTrace2ParentSid::test_append", + "tests/test_wrapper.py::SetGitTrace2ParentSid::test_first_set", + "tests/test_wrapper.py::SetGitTrace2ParentSid::test_global_context", + "tests/test_wrapper.py::SetupGnuPG::test_full", + "tests/test_wrapper.py::VerifyRev::test_unsigned_commit", + "tests/test_wrapper.py::VerifyRev::test_verify_fails", + "tests/test_wrapper.py::VerifyRev::test_verify_passes" +] \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/v/cache/stepwise new/git-repo-2.21/.pytest_cache/v/cache/stepwise --- old/git-repo-2.20/.pytest_cache/v/cache/stepwise 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/v/cache/stepwise 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1 @@ +[] \ No newline at end of file Binary files old/git-repo-2.20/__pycache__/color.cpython-38.pyc and new/git-repo-2.21/__pycache__/color.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/command.cpython-38.pyc and new/git-repo-2.21/__pycache__/command.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/editor.cpython-38.pyc and new/git-repo-2.21/__pycache__/editor.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/error.cpython-38.pyc and new/git-repo-2.21/__pycache__/error.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/event_log.cpython-38.pyc and new/git-repo-2.21/__pycache__/event_log.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/fetch.cpython-38.pyc and new/git-repo-2.21/__pycache__/fetch.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_command.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_command.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_config.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_config.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_refs.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_refs.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_superproject.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_superproject.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_trace2_event_log.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_trace2_event_log.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/gitc_utils.cpython-38.pyc and new/git-repo-2.21/__pycache__/gitc_utils.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/hooks.cpython-38.pyc and new/git-repo-2.21/__pycache__/hooks.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/main.cpython-38.pyc and new/git-repo-2.21/__pycache__/main.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/manifest_xml.cpython-38.pyc and new/git-repo-2.21/__pycache__/manifest_xml.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/pager.cpython-38.pyc and new/git-repo-2.21/__pycache__/pager.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/platform_utils.cpython-38.pyc and new/git-repo-2.21/__pycache__/platform_utils.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/progress.cpython-38.pyc and new/git-repo-2.21/__pycache__/progress.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/project.cpython-38.pyc and new/git-repo-2.21/__pycache__/project.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/repo_trace.cpython-38.pyc and new/git-repo-2.21/__pycache__/repo_trace.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/repocpython-38.pyc and new/git-repo-2.21/__pycache__/repocpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/ssh.cpython-38.pyc and new/git-repo-2.21/__pycache__/ssh.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/wrapper.cpython-38.pyc and new/git-repo-2.21/__pycache__/wrapper.cpython-38.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/docs/internal-fs-layout.md new/git-repo-2.21/docs/internal-fs-layout.md --- old/git-repo-2.20/docs/internal-fs-layout.md 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/docs/internal-fs-layout.md 2022-01-26 17:46:03.000000000 +0100 @@ -163,6 +163,7 @@ | repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] | | repo.depth | `--depth` | Create shallow checkouts when cloning | | repo.dissociate | `--dissociate` | Dissociate from any reference/mirrors after initial clone | +| repo.git-lfs | `--git-lfs` | Enable [Git LFS] support | | repo.mirror | `--mirror` | Checkout is a repo mirror | | repo.partialclone | `--partial-clone` | Create [partial git clones] | | repo.partialcloneexclude | `--partial-clone-exclude` | Comma-delimited list of project names (not paths) to exclude while using [partial git clones] | @@ -254,6 +255,7 @@ [git-config]: https://git-scm.com/docs/git-config +[Git LFS]: https://git-lfs.github.com/ [git worktree]: https://git-scm.com/docs/git-worktree [gitsubmodules]: https://git-scm.com/docs/gitsubmodules [manifest-format.md]: ./manifest-format.md diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/git_command.py new/git-repo-2.21/git_command.py --- old/git-repo-2.20/git_command.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/git_command.py 2022-01-26 17:46:03.000000000 +0100 @@ -169,7 +169,8 @@ disable_editor=False, ssh_proxy=None, cwd=None, - gitdir=None): + gitdir=None, + objdir=None): env = self._GetBasicEnv() if disable_editor: @@ -194,13 +195,24 @@ cwd = project.worktree if not gitdir: gitdir = project.gitdir + # Git on Windows wants its paths only using / for reliability. + if platform_utils.isWindows(): + if objdir: + objdir = objdir.replace('\\', '/') + if gitdir: + gitdir = gitdir.replace('\\', '/') + + if objdir: + # Set to the place we want to save the objects. + env['GIT_OBJECT_DIRECTORY'] = objdir + if gitdir: + # Allow git to search the original place in case of local or unique refs + # that git will attempt to resolve even if we aren't fetching them. + env['GIT_ALTERNATE_OBJECT_DIRECTORIES'] = gitdir + '/objects' command = [GIT] if bare: if gitdir: - # Git on Windows wants its paths only using / for reliability. - if platform_utils.isWindows(): - gitdir = gitdir.replace('\\', '/') env[GIT_DIR] = gitdir cwd = None command.append(cmdv[0]) @@ -234,6 +246,11 @@ dbg += ': export GIT_DIR=%s\n' % env[GIT_DIR] LAST_GITDIR = env[GIT_DIR] + if 'GIT_OBJECT_DIRECTORY' in env: + dbg += ': export GIT_OBJECT_DIRECTORY=%s\n' % env['GIT_OBJECT_DIRECTORY'] + if 'GIT_ALTERNATE_OBJECT_DIRECTORIES' in env: + dbg += ': export GIT_ALTERNATE_OBJECT_DIRECTORIES=%s\n' % env['GIT_ALTERNATE_OBJECT_DIRECTORIES'] + dbg += ': ' dbg += ' '.join(command) if stdin == subprocess.PIPE: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/manifest_xml.py new/git-repo-2.21/manifest_xml.py --- old/git-repo-2.20/manifest_xml.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/manifest_xml.py 2022-01-26 17:46:03.000000000 +0100 @@ -666,6 +666,10 @@ def HasSubmodules(self): return self.manifestProject.config.GetBoolean('repo.submodules') + @property + def EnableGitLfs(self): + return self.manifestProject.config.GetBoolean('repo.git-lfs') + def GetDefaultGroupsStr(self): """Returns the default group string for the platform.""" return 'default,platform-' + platform.system().lower() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/project.py new/git-repo-2.21/project.py --- old/git-repo-2.20/project.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/project.py 2022-01-26 17:46:03.000000000 +0100 @@ -1120,7 +1120,7 @@ self._InitRemote() if is_new: - alt = os.path.join(self.gitdir, 'objects/info/alternates') + alt = os.path.join(self.objdir, 'objects/info/alternates') try: with open(alt) as fd: # This works for both absolute and relative alternate directories. @@ -1169,7 +1169,7 @@ mp = self.manifest.manifestProject dissociate = mp.config.GetBoolean('repo.dissociate') if dissociate: - alternates_file = os.path.join(self.gitdir, 'objects/info/alternates') + alternates_file = os.path.join(self.objdir, 'objects/info/alternates') if os.path.exists(alternates_file): cmd = ['repack', '-a', '-d'] p = GitCommand(self, cmd, bare=True, capture_stdout=bool(output_redir), @@ -2192,8 +2192,10 @@ retry_cur_sleep = retry_sleep_initial_sec ok = prune_tried = False for try_n in range(retry_fetches): - gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy, - merge_output=True, capture_stdout=quiet or bool(output_redir)) + gitcmd = GitCommand( + self, cmd, bare=True, objdir=os.path.join(self.objdir, 'objects'), + ssh_proxy=ssh_proxy, + merge_output=True, capture_stdout=quiet or bool(output_redir)) if gitcmd.stdout and not quiet and output_redir: output_redir.write(gitcmd.stdout) ret = gitcmd.Wait() @@ -2309,7 +2311,8 @@ cmd.append(str(f)) cmd.append('+refs/tags/*:refs/tags/*') - ok = GitCommand(self, cmd, bare=True).Wait() == 0 + ok = GitCommand( + self, cmd, bare=True, objdir=os.path.join(self.objdir, 'objects')).Wait() == 0 platform_utils.remove(bundle_dst, missing_ok=True) platform_utils.remove(bundle_tmp, missing_ok=True) return ok @@ -2504,8 +2507,8 @@ if ref_dir or mirror_git: if not mirror_git: mirror_git = os.path.join(ref_dir, self.name + '.git') - repo_git = os.path.join(ref_dir, '.repo', 'projects', - self.relpath + '.git') + repo_git = os.path.join(ref_dir, '.repo', 'project-objects', + self.name + '.git') worktrees_git = os.path.join(ref_dir, '.repo', 'worktrees', self.name + '.git') @@ -2523,15 +2526,16 @@ # The alternate directory is relative to the object database. ref_dir = os.path.relpath(ref_dir, os.path.join(self.objdir, 'objects')) - _lwrite(os.path.join(self.gitdir, 'objects/info/alternates'), + _lwrite(os.path.join(self.objdir, 'objects/info/alternates'), os.path.join(ref_dir, 'objects') + '\n') m = self.manifest.manifestProject.config for key in ['user.name', 'user.email']: if m.Has(key, include_defaults=False): self.config.SetString(key, m.GetString(key)) - self.config.SetString('filter.lfs.smudge', 'git-lfs smudge --skip -- %f') - self.config.SetString('filter.lfs.process', 'git-lfs filter-process --skip') + if not self.manifest.EnableGitLfs: + self.config.SetString('filter.lfs.smudge', 'git-lfs smudge --skip -- %f') + self.config.SetString('filter.lfs.process', 'git-lfs filter-process --skip') self.config.SetBoolean('core.bare', True if self.manifest.IsMirror else None) except Exception: if init_obj_dir and os.path.exists(self.objdir): @@ -2551,7 +2555,10 @@ # Delete sample hooks. They're noise. for hook in glob.glob(os.path.join(hooks, '*.sample')): - platform_utils.remove(hook, missing_ok=True) + try: + platform_utils.remove(hook, missing_ok=True) + except PermissionError: + pass for stock_hook in _ProjectHooks(): name = os.path.basename(stock_hook) @@ -2813,7 +2820,8 @@ } # Paths that we know will be in both, but are safe to clobber in .repo/projects/. SAFE_TO_CLOBBER = { - 'COMMIT_EDITMSG', 'FETCH_HEAD', 'HEAD', 'gitk.cache', 'index', 'ORIG_HEAD', + 'COMMIT_EDITMSG', 'FETCH_HEAD', 'HEAD', 'gc.log', 'gitk.cache', 'index', + 'ORIG_HEAD', } # First see if we'd succeed before starting the migration. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/repo new/git-repo-2.21/repo --- old/git-repo-2.20/repo 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/repo 2022-01-26 17:46:03.000000000 +0100 @@ -149,7 +149,7 @@ BUG_URL = 'https://bugs.chromium.org/p/gerrit/issues/entry?template=Repo+tool+issue' # increment this whenever we make important changes to this script -VERSION = (2, 17) +VERSION = (2, 21) # increment this if the MAINTAINER_KEYS block is modified KEYRING_VERSION = (2, 3) @@ -382,6 +382,11 @@ group.add_option('--no-clone-bundle', dest='clone_bundle', action='store_false', help='disable use of /clone.bundle on HTTP/HTTPS (default if --partial-clone)') + group.add_option('--git-lfs', action='store_true', + help='enable Git LFS support') + group.add_option('--no-git-lfs', + dest='git_lfs', action='store_false', + help='disable Git LFS support') # Tool. group = parser.add_option_group('repo Version options') @@ -618,6 +623,7 @@ "REPO_URL set correctly?" % url, file=sys.stderr) except CloneFailure: + print('fatal: double check your --repo-rev setting.', file=sys.stderr) if opt.quiet: print('fatal: repo init failed; run without --quiet to see why', file=sys.stderr) Binary files old/git-repo-2.20/subcmds/__pycache__/__init__.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/__init__.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/abandon.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/abandon.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/branches.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/branches.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/checkout.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/checkout.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/cherry_pick.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/cherry_pick.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/diff.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/diff.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/diffmanifests.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/diffmanifests.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/download.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/download.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/forall.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/forall.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/gitc_delete.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/gitc_delete.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/gitc_init.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/gitc_init.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/grep.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/grep.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/help.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/help.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/info.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/info.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/init.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/init.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/list.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/list.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/manifest.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/manifest.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/overview.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/overview.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/prune.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/prune.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/rebase.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/rebase.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/selfupdate.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/selfupdate.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/smartsync.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/smartsync.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/stage.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/stage.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/start.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/start.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/status.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/status.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/sync.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/sync.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/upload.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/upload.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/version.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/version.cpython-38.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/subcmds/branches.py new/git-repo-2.21/subcmds/branches.py --- old/git-repo-2.20/subcmds/branches.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/subcmds/branches.py 2022-01-26 17:46:03.000000000 +0100 @@ -151,7 +151,7 @@ fmt = out.write paths = [] non_cur_paths = [] - if i.IsSplitCurrent or (in_cnt < project_cnt - in_cnt): + if i.IsSplitCurrent or (in_cnt <= project_cnt - in_cnt): in_type = 'in' for b in i.projects: if not i.IsSplitCurrent or b.current: @@ -163,9 +163,9 @@ in_type = 'not in' have = set() for b in i.projects: - have.add(b.project) + have.add(b.project.relpath) for p in projects: - if p not in have: + if p.relpath not in have: paths.append(p.relpath) s = ' %s %s' % (in_type, ', '.join(paths)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/subcmds/init.py new/git-repo-2.21/subcmds/init.py --- old/git-repo-2.20/subcmds/init.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/subcmds/init.py 2022-01-26 17:46:03.000000000 +0100 @@ -291,6 +291,15 @@ if opt.submodules: m.config.SetBoolean('repo.submodules', opt.submodules) + if opt.git_lfs is not None: + if opt.git_lfs: + git_require((2, 17, 0), fail=True, msg='Git LFS support') + + m.config.SetBoolean('repo.git-lfs', opt.git_lfs) + if not is_new: + print('warning: Changing --git-lfs settings will only affect new project checkouts.\n' + ' Existing projects will require manual updates.\n', file=sys.stderr) + if opt.use_superproject is not None: m.config.SetBoolean('repo.superproject', opt.use_superproject) @@ -520,8 +529,12 @@ # Handle new --repo-rev requests. if opt.repo_rev: wrapper = Wrapper() - remote_ref, rev = wrapper.check_repo_rev( - rp.gitdir, opt.repo_rev, repo_verify=opt.repo_verify, quiet=opt.quiet) + try: + remote_ref, rev = wrapper.check_repo_rev( + rp.gitdir, opt.repo_rev, repo_verify=opt.repo_verify, quiet=opt.quiet) + except wrapper.CloneFailure: + print('fatal: double check your --repo-rev setting.', file=sys.stderr) + sys.exit(1) branch = rp.GetBranch('default') branch.merge = remote_ref rp.work_git.reset('--hard', rev) Binary files old/git-repo-2.20/tests/__pycache__/test_editor.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_editor.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_error.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_error.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_command.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_command.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_config.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_config.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_superproject.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_superproject.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_trace2_event_log.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_trace2_event_log.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_hooks.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_hooks.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_manifest_xml.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_manifest_xml.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_platform_utils.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_platform_utils.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_project.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_project.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_ssh.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_ssh.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_subcmds.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_subcmds.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_subcmds_init.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_subcmds_init.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_wrapper.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_wrapper.cpython-38-pytest-6.2.5.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/tests/fixtures/.repo_not.present.gitconfig.json new/git-repo-2.21/tests/fixtures/.repo_not.present.gitconfig.json --- old/git-repo-2.20/tests/fixtures/.repo_not.present.gitconfig.json 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/tests/fixtures/.repo_not.present.gitconfig.json 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1 @@ +{} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/tests/fixtures/.repo_test.gitconfig.json new/git-repo-2.21/tests/fixtures/.repo_test.gitconfig.json --- old/git-repo-2.20/tests/fixtures/.repo_test.gitconfig.json 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/tests/fixtures/.repo_test.gitconfig.json 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,38 @@ +{ + "section.empty": [ + null + ], + "section.nonempty": [ + "true" + ], + "section.boolinvalid": [ + "oops" + ], + "section.booltrue": [ + "true" + ], + "section.boolfalse": [ + "false" + ], + "section.intinvalid": [ + "oops" + ], + "section.inthex": [ + "0x10" + ], + "section.inthexk": [ + "0x10k" + ], + "section.int": [ + "10" + ], + "section.intk": [ + "10k" + ], + "section.intm": [ + "10m" + ], + "section.intg": [ + "10g" + ] +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/tests/test_project.py new/git-repo-2.21/tests/test_project.py --- old/git-repo-2.20/tests/test_project.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/tests/test_project.py 2022-01-26 17:46:03.000000000 +0100 @@ -382,7 +382,7 @@ # Make sure the dir was transformed into a symlink. self.assertTrue(dotgit.is_symlink()) - self.assertEqual(str(dotgit.readlink()), '../../.repo/projects/src/test.git') + self.assertEqual(os.readlink(dotgit), '../../.repo/projects/src/test.git') # Make sure files were moved over. gitdir = tempdir / '.repo/projects/src/test.git' ++++++ git-repo-2.20.tar.xz -> git-repo-2.21.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/.gitignore new/git-repo-2.21/.pytest_cache/.gitignore --- old/git-repo-2.20/.pytest_cache/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/.gitignore 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,2 @@ +# Created by pytest automatically. +* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/CACHEDIR.TAG new/git-repo-2.21/.pytest_cache/CACHEDIR.TAG --- old/git-repo-2.20/.pytest_cache/CACHEDIR.TAG 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/CACHEDIR.TAG 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,4 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by pytest. +# For information about cache directory tags, see: +# http://www.bford.info/cachedir/spec.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/README.md new/git-repo-2.21/.pytest_cache/README.md --- old/git-repo-2.20/.pytest_cache/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/README.md 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,8 @@ +# pytest cache directory # + +This directory contains data from the pytest's cache plugin, +which provides the `--lf` and `--ff` options, as well as the `cache` fixture. + +**Do not** commit this to version control. + +See [the docs](https://docs.pytest.org/en/stable/cache.html) for more information. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/v/cache/lastfailed new/git-repo-2.21/.pytest_cache/v/cache/lastfailed --- old/git-repo-2.20/.pytest_cache/v/cache/lastfailed 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/v/cache/lastfailed 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,50 @@ +{ + "tests/test_editor.py::EditString": true, + "tests/test_editor.py::EditorTestCase": true, + "tests/test_editor.py::GetEditor": true, + "tests/test_error.py::PickleTests": true, + "tests/test_git_command.py::GitCallUnitTest": true, + "tests/test_git_command.py::GitRequireTests": true, + "tests/test_git_command.py::UserAgentUnitTest": true, + "tests/test_git_config.py::GitConfigReadOnlyTests": true, + "tests/test_git_config.py::GitConfigReadWriteTests": true, + "tests/test_git_superproject.py::SuperprojectTestCase": true, + "tests/test_git_trace2_event_log.py::EventLogTestCase": true, + "tests/test_hooks.py::RepoHookShebang": true, + "tests/test_manifest_xml.py::ContactinfoElementTests": true, + "tests/test_manifest_xml.py::DefaultElementTests": true, + "tests/test_manifest_xml.py::ExtendProjectElementTests": true, + "tests/test_manifest_xml.py::IncludeElementTests": true, + "tests/test_manifest_xml.py::ManifestParseTestCase": true, + "tests/test_manifest_xml.py::ManifestValidateFilePaths": true, + "tests/test_manifest_xml.py::ProjectElementTests": true, + "tests/test_manifest_xml.py::RemoteElementTests": true, + "tests/test_manifest_xml.py::RemoveProjectElementTests": true, + "tests/test_manifest_xml.py::SuperProjectElementTests": true, + "tests/test_manifest_xml.py::ValueTests": true, + "tests/test_manifest_xml.py::XmlManifestTests": true, + "tests/test_platform_utils.py::RemoveTests": true, + "tests/test_project.py::CopyFile": true, + "tests/test_project.py::CopyLinkTestCase": true, + "tests/test_project.py::LinkFile": true, + "tests/test_project.py::MigrateWorkTreeTests": true, + "tests/test_project.py::ReviewableBranchTests": true, + "tests/test_ssh.py::SshTests": true, + "tests/test_subcmds.py::AllCommands": true, + "tests/test_subcmds_init.py::InitCommand": true, + "tests/test_wrapper.py::CheckGitVersion": true, + "tests/test_wrapper.py::CheckRepoRev": true, + "tests/test_wrapper.py::CheckRepoVerify": true, + "tests/test_wrapper.py::GitCheckoutTestCase": true, + "tests/test_wrapper.py::NeedSetupGnuPG": true, + "tests/test_wrapper.py::ParseGitVersion": true, + "tests/test_wrapper.py::RepoWrapperTestCase": true, + "tests/test_wrapper.py::RepoWrapperUnitTest": true, + "tests/test_wrapper.py::Requirements": true, + "tests/test_wrapper.py::ResolveRepoRev": true, + "tests/test_wrapper.py::RunCommand": true, + "tests/test_wrapper.py::RunGit": true, + "tests/test_wrapper.py::SetGitTrace2ParentSid": true, + "tests/test_wrapper.py::SetupGnuPG": true, + "tests/test_wrapper.py::VerifyRev": true +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/v/cache/nodeids new/git-repo-2.21/.pytest_cache/v/cache/nodeids --- old/git-repo-2.20/.pytest_cache/v/cache/nodeids 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/v/cache/nodeids 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,186 @@ +[ + "tests/test_editor.py::EditString::test_cat_editor", + "tests/test_editor.py::EditString::test_no_editor", + "tests/test_editor.py::GetEditor::test_basic", + "tests/test_error.py::PickleTests::testExceptionLookup", + "tests/test_error.py::PickleTests::testPickle", + "tests/test_git_command.py::GitCallUnitTest::test_version_tuple", + "tests/test_git_command.py::GitRequireTests::test_equal_nonfatal", + "tests/test_git_command.py::GitRequireTests::test_newer_nonfatal", + "tests/test_git_command.py::GitRequireTests::test_older_fatal", + "tests/test_git_command.py::GitRequireTests::test_older_fatal_msg", + "tests/test_git_command.py::GitRequireTests::test_older_nonfatal", + "tests/test_git_command.py::UserAgentUnitTest::test_smoke_git", + "tests/test_git_command.py::UserAgentUnitTest::test_smoke_os", + "tests/test_git_command.py::UserAgentUnitTest::test_smoke_repo", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_false", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_invalid", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_true", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetBoolean_undefined", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetInt_invalid", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetInt_undefined", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetInt_valid", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetString_from_missing_file", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetString_with_empty_config_values", + "tests/test_git_config.py::GitConfigReadOnlyTests::test_GetString_with_true_value", + "tests/test_git_config.py::GitConfigReadWriteTests::test_GetSyncAnalysisStateData", + "tests/test_git_config.py::GitConfigReadWriteTests::test_SetBoolean", + "tests/test_git_config.py::GitConfigReadWriteTests::test_SetString", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_all_project_commit_ids_mock_ls_tree", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_invalid_branch", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_invalid_url", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_mock_fetch", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_mock_init", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_get_superproject_no_superproject", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id_from_local_manifest_group", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id_no_superproject_tag", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_update_project_revision_id_with_pinned_manifest", + "tests/test_git_superproject.py::SuperprojectTestCase::test_superproject_write_manifest_file", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_command_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_data_event_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_def_params_event_no_repo_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_def_params_event_repo_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_error_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_exit_event_result_integer", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_exit_event_result_none", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_initial_state_no_parent_sid", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_initial_state_with_parent_sid", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_start_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_version_event", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_no_git_config", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_non_string", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_with_filename", + "tests/test_git_trace2_event_log.py::EventLogTestCase::test_write_with_git_config", + "tests/test_hooks.py::RepoHookShebang::test_direct_interp", + "tests/test_hooks.py::RepoHookShebang::test_env_interp", + "tests/test_hooks.py::RepoHookShebang::test_no_shebang", + "tests/test_manifest_xml.py::ContactinfoElementTests::test_contactinfo", + "tests/test_manifest_xml.py::DefaultElementTests::test_default", + "tests/test_manifest_xml.py::ExtendProjectElementTests::test_extend_project_dest_path_multi_match", + "tests/test_manifest_xml.py::ExtendProjectElementTests::test_extend_project_dest_path_multi_match_path_specified", + "tests/test_manifest_xml.py::ExtendProjectElementTests::test_extend_project_dest_path_single_match", + "tests/test_manifest_xml.py::IncludeElementTests::test_allow_bad_name_from_user", + "tests/test_manifest_xml.py::IncludeElementTests::test_bad_name_checks", + "tests/test_manifest_xml.py::IncludeElementTests::test_group_levels", + "tests/test_manifest_xml.py::ManifestValidateFilePaths::test_bad_paths", + "tests/test_manifest_xml.py::ManifestValidateFilePaths::test_normal_path", + "tests/test_manifest_xml.py::ManifestValidateFilePaths::test_symlink_targets", + "tests/test_manifest_xml.py::ProjectElementTests::test_bad_path_name_checks", + "tests/test_manifest_xml.py::ProjectElementTests::test_group", + "tests/test_manifest_xml.py::ProjectElementTests::test_set_revision_id", + "tests/test_manifest_xml.py::ProjectElementTests::test_toplevel_path", + "tests/test_manifest_xml.py::ProjectElementTests::test_trailing_slash", + "tests/test_manifest_xml.py::RemoteElementTests::test_remote", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_optional_project_doesnt_exist", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_project", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_project_doesnt_exist", + "tests/test_manifest_xml.py::RemoveProjectElementTests::test_remove_one_project_one_remains", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_defalut_remote", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_remote", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject_revision", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject_revision_default_negative", + "tests/test_manifest_xml.py::SuperProjectElementTests::test_superproject_revision_remote", + "tests/test_manifest_xml.py::ValueTests::test_bool_default", + "tests/test_manifest_xml.py::ValueTests::test_bool_false", + "tests/test_manifest_xml.py::ValueTests::test_bool_invalid", + "tests/test_manifest_xml.py::ValueTests::test_bool_true", + "tests/test_manifest_xml.py::ValueTests::test_int_default", + "tests/test_manifest_xml.py::ValueTests::test_int_good", + "tests/test_manifest_xml.py::ValueTests::test_int_invalid", + "tests/test_manifest_xml.py::XmlManifestTests::test_empty", + "tests/test_manifest_xml.py::XmlManifestTests::test_link", + "tests/test_manifest_xml.py::XmlManifestTests::test_remote_annotations", + "tests/test_manifest_xml.py::XmlManifestTests::test_repo_hooks", + "tests/test_manifest_xml.py::XmlManifestTests::test_repo_hooks_unordered", + "tests/test_manifest_xml.py::XmlManifestTests::test_todict_empty", + "tests/test_manifest_xml.py::XmlManifestTests::test_toxml_empty", + "tests/test_manifest_xml.py::XmlManifestTests::test_unknown_tags", + "tests/test_platform_utils.py::RemoveTests::testMissingOk", + "tests/test_project.py::CopyFile::test_basic", + "tests/test_project.py::CopyFile::test_dest_block_symlink", + "tests/test_project.py::CopyFile::test_dest_block_symlink_traversal", + "tests/test_project.py::CopyFile::test_dest_subdir", + "tests/test_project.py::CopyFile::test_src_block_copy_from_dir", + "tests/test_project.py::CopyFile::test_src_block_copy_to_dir", + "tests/test_project.py::CopyFile::test_src_block_symlink", + "tests/test_project.py::CopyFile::test_src_block_symlink_traversal", + "tests/test_project.py::CopyFile::test_src_subdir", + "tests/test_project.py::CopyFile::test_update", + "tests/test_project.py::LinkFile::test_basic", + "tests/test_project.py::LinkFile::test_dest_subdir", + "tests/test_project.py::LinkFile::test_src_block_relative", + "tests/test_project.py::LinkFile::test_src_self", + "tests/test_project.py::LinkFile::test_src_subdir", + "tests/test_project.py::LinkFile::test_update", + "tests/test_project.py::MigrateWorkTreeTests::test_standard", + "tests/test_project.py::MigrateWorkTreeTests::test_unknown", + "tests/test_project.py::ReviewableBranchTests::test_smoke", + "tests/test_ssh.py::SshTests::test_context_manager_child_cleanup", + "tests/test_ssh.py::SshTests::test_context_manager_empty", + "tests/test_ssh.py::SshTests::test_parse_ssh_version", + "tests/test_ssh.py::SshTests::test_ssh_sock", + "tests/test_ssh.py::SshTests::test_version", + "tests/test_subcmds.py::AllCommands::test_help_desc_style", + "tests/test_subcmds.py::AllCommands::test_naming", + "tests/test_subcmds.py::AllCommands::test_required_basic", + "tests/test_subcmds_init.py::InitCommand::test_cli_parser_bad", + "tests/test_subcmds_init.py::InitCommand::test_cli_parser_good", + "tests/test_wrapper.py::CheckGitVersion::test_new", + "tests/test_wrapper.py::CheckGitVersion::test_old", + "tests/test_wrapper.py::CheckGitVersion::test_unknown", + "tests/test_wrapper.py::CheckRepoRev::test_verify_fails", + "tests/test_wrapper.py::CheckRepoRev::test_verify_ignore", + "tests/test_wrapper.py::CheckRepoRev::test_verify_works", + "tests/test_wrapper.py::CheckRepoVerify::test_gpg_initialized", + "tests/test_wrapper.py::CheckRepoVerify::test_need_gpg_setup", + "tests/test_wrapper.py::CheckRepoVerify::test_no_verify", + "tests/test_wrapper.py::NeedSetupGnuPG::test_empty_keyring", + "tests/test_wrapper.py::NeedSetupGnuPG::test_missing_dir", + "tests/test_wrapper.py::NeedSetupGnuPG::test_missing_keyring", + "tests/test_wrapper.py::NeedSetupGnuPG::test_new_keyring", + "tests/test_wrapper.py::NeedSetupGnuPG::test_old_keyring", + "tests/test_wrapper.py::ParseGitVersion::test_autoload", + "tests/test_wrapper.py::ParseGitVersion::test_bad_ver", + "tests/test_wrapper.py::ParseGitVersion::test_extended_ver", + "tests/test_wrapper.py::ParseGitVersion::test_normal_ver", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_get_gitc_manifest_dir", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_get_gitc_manifest_dir_no_gitc", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_gitc_init_parser", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_gitc_parse_clientdir", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_gitc_parse_clientdir_no_gitc", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_init_parser", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_python_constraints", + "tests/test_wrapper.py::RepoWrapperUnitTest::test_version", + "tests/test_wrapper.py::Requirements::test_assert_all_new_python", + "tests/test_wrapper.py::Requirements::test_assert_all_new_repo", + "tests/test_wrapper.py::Requirements::test_assert_all_old_python", + "tests/test_wrapper.py::Requirements::test_assert_all_old_repo", + "tests/test_wrapper.py::Requirements::test_assert_all_unknown", + "tests/test_wrapper.py::Requirements::test_assert_ver_new", + "tests/test_wrapper.py::Requirements::test_assert_ver_old", + "tests/test_wrapper.py::Requirements::test_assert_ver_unknown", + "tests/test_wrapper.py::Requirements::test_corrupt_data", + "tests/test_wrapper.py::Requirements::test_format_ver", + "tests/test_wrapper.py::Requirements::test_missing_file", + "tests/test_wrapper.py::Requirements::test_valid_data", + "tests/test_wrapper.py::ResolveRepoRev::test_branch_name", + "tests/test_wrapper.py::ResolveRepoRev::test_explicit_branch", + "tests/test_wrapper.py::ResolveRepoRev::test_explicit_tag", + "tests/test_wrapper.py::ResolveRepoRev::test_full_commit", + "tests/test_wrapper.py::ResolveRepoRev::test_partial_commit", + "tests/test_wrapper.py::ResolveRepoRev::test_tag_name", + "tests/test_wrapper.py::ResolveRepoRev::test_unknown", + "tests/test_wrapper.py::RunCommand::test_capture", + "tests/test_wrapper.py::RunCommand::test_check", + "tests/test_wrapper.py::RunGit::test_capture", + "tests/test_wrapper.py::RunGit::test_check", + "tests/test_wrapper.py::SetGitTrace2ParentSid::test_append", + "tests/test_wrapper.py::SetGitTrace2ParentSid::test_first_set", + "tests/test_wrapper.py::SetGitTrace2ParentSid::test_global_context", + "tests/test_wrapper.py::SetupGnuPG::test_full", + "tests/test_wrapper.py::VerifyRev::test_unsigned_commit", + "tests/test_wrapper.py::VerifyRev::test_verify_fails", + "tests/test_wrapper.py::VerifyRev::test_verify_passes" +] \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/.pytest_cache/v/cache/stepwise new/git-repo-2.21/.pytest_cache/v/cache/stepwise --- old/git-repo-2.20/.pytest_cache/v/cache/stepwise 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/.pytest_cache/v/cache/stepwise 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1 @@ +[] \ No newline at end of file Binary files old/git-repo-2.20/__pycache__/color.cpython-38.pyc and new/git-repo-2.21/__pycache__/color.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/command.cpython-38.pyc and new/git-repo-2.21/__pycache__/command.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/editor.cpython-38.pyc and new/git-repo-2.21/__pycache__/editor.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/error.cpython-38.pyc and new/git-repo-2.21/__pycache__/error.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/event_log.cpython-38.pyc and new/git-repo-2.21/__pycache__/event_log.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/fetch.cpython-38.pyc and new/git-repo-2.21/__pycache__/fetch.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_command.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_command.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_config.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_config.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_refs.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_refs.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_superproject.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_superproject.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/git_trace2_event_log.cpython-38.pyc and new/git-repo-2.21/__pycache__/git_trace2_event_log.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/gitc_utils.cpython-38.pyc and new/git-repo-2.21/__pycache__/gitc_utils.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/hooks.cpython-38.pyc and new/git-repo-2.21/__pycache__/hooks.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/main.cpython-38.pyc and new/git-repo-2.21/__pycache__/main.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/manifest_xml.cpython-38.pyc and new/git-repo-2.21/__pycache__/manifest_xml.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/pager.cpython-38.pyc and new/git-repo-2.21/__pycache__/pager.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/platform_utils.cpython-38.pyc and new/git-repo-2.21/__pycache__/platform_utils.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/progress.cpython-38.pyc and new/git-repo-2.21/__pycache__/progress.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/project.cpython-38.pyc and new/git-repo-2.21/__pycache__/project.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/repo_trace.cpython-38.pyc and new/git-repo-2.21/__pycache__/repo_trace.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/repocpython-38.pyc and new/git-repo-2.21/__pycache__/repocpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/ssh.cpython-38.pyc and new/git-repo-2.21/__pycache__/ssh.cpython-38.pyc differ Binary files old/git-repo-2.20/__pycache__/wrapper.cpython-38.pyc and new/git-repo-2.21/__pycache__/wrapper.cpython-38.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/docs/internal-fs-layout.md new/git-repo-2.21/docs/internal-fs-layout.md --- old/git-repo-2.20/docs/internal-fs-layout.md 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/docs/internal-fs-layout.md 2022-01-26 17:46:03.000000000 +0100 @@ -163,6 +163,7 @@ | repo.clonefilter | `--clone-filter` | Filter setting when using [partial git clones] | | repo.depth | `--depth` | Create shallow checkouts when cloning | | repo.dissociate | `--dissociate` | Dissociate from any reference/mirrors after initial clone | +| repo.git-lfs | `--git-lfs` | Enable [Git LFS] support | | repo.mirror | `--mirror` | Checkout is a repo mirror | | repo.partialclone | `--partial-clone` | Create [partial git clones] | | repo.partialcloneexclude | `--partial-clone-exclude` | Comma-delimited list of project names (not paths) to exclude while using [partial git clones] | @@ -254,6 +255,7 @@ [git-config]: https://git-scm.com/docs/git-config +[Git LFS]: https://git-lfs.github.com/ [git worktree]: https://git-scm.com/docs/git-worktree [gitsubmodules]: https://git-scm.com/docs/gitsubmodules [manifest-format.md]: ./manifest-format.md diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/git_command.py new/git-repo-2.21/git_command.py --- old/git-repo-2.20/git_command.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/git_command.py 2022-01-26 17:46:03.000000000 +0100 @@ -169,7 +169,8 @@ disable_editor=False, ssh_proxy=None, cwd=None, - gitdir=None): + gitdir=None, + objdir=None): env = self._GetBasicEnv() if disable_editor: @@ -194,13 +195,24 @@ cwd = project.worktree if not gitdir: gitdir = project.gitdir + # Git on Windows wants its paths only using / for reliability. + if platform_utils.isWindows(): + if objdir: + objdir = objdir.replace('\\', '/') + if gitdir: + gitdir = gitdir.replace('\\', '/') + + if objdir: + # Set to the place we want to save the objects. + env['GIT_OBJECT_DIRECTORY'] = objdir + if gitdir: + # Allow git to search the original place in case of local or unique refs + # that git will attempt to resolve even if we aren't fetching them. + env['GIT_ALTERNATE_OBJECT_DIRECTORIES'] = gitdir + '/objects' command = [GIT] if bare: if gitdir: - # Git on Windows wants its paths only using / for reliability. - if platform_utils.isWindows(): - gitdir = gitdir.replace('\\', '/') env[GIT_DIR] = gitdir cwd = None command.append(cmdv[0]) @@ -234,6 +246,11 @@ dbg += ': export GIT_DIR=%s\n' % env[GIT_DIR] LAST_GITDIR = env[GIT_DIR] + if 'GIT_OBJECT_DIRECTORY' in env: + dbg += ': export GIT_OBJECT_DIRECTORY=%s\n' % env['GIT_OBJECT_DIRECTORY'] + if 'GIT_ALTERNATE_OBJECT_DIRECTORIES' in env: + dbg += ': export GIT_ALTERNATE_OBJECT_DIRECTORIES=%s\n' % env['GIT_ALTERNATE_OBJECT_DIRECTORIES'] + dbg += ': ' dbg += ' '.join(command) if stdin == subprocess.PIPE: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/manifest_xml.py new/git-repo-2.21/manifest_xml.py --- old/git-repo-2.20/manifest_xml.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/manifest_xml.py 2022-01-26 17:46:03.000000000 +0100 @@ -666,6 +666,10 @@ def HasSubmodules(self): return self.manifestProject.config.GetBoolean('repo.submodules') + @property + def EnableGitLfs(self): + return self.manifestProject.config.GetBoolean('repo.git-lfs') + def GetDefaultGroupsStr(self): """Returns the default group string for the platform.""" return 'default,platform-' + platform.system().lower() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/project.py new/git-repo-2.21/project.py --- old/git-repo-2.20/project.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/project.py 2022-01-26 17:46:03.000000000 +0100 @@ -1120,7 +1120,7 @@ self._InitRemote() if is_new: - alt = os.path.join(self.gitdir, 'objects/info/alternates') + alt = os.path.join(self.objdir, 'objects/info/alternates') try: with open(alt) as fd: # This works for both absolute and relative alternate directories. @@ -1169,7 +1169,7 @@ mp = self.manifest.manifestProject dissociate = mp.config.GetBoolean('repo.dissociate') if dissociate: - alternates_file = os.path.join(self.gitdir, 'objects/info/alternates') + alternates_file = os.path.join(self.objdir, 'objects/info/alternates') if os.path.exists(alternates_file): cmd = ['repack', '-a', '-d'] p = GitCommand(self, cmd, bare=True, capture_stdout=bool(output_redir), @@ -2192,8 +2192,10 @@ retry_cur_sleep = retry_sleep_initial_sec ok = prune_tried = False for try_n in range(retry_fetches): - gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy, - merge_output=True, capture_stdout=quiet or bool(output_redir)) + gitcmd = GitCommand( + self, cmd, bare=True, objdir=os.path.join(self.objdir, 'objects'), + ssh_proxy=ssh_proxy, + merge_output=True, capture_stdout=quiet or bool(output_redir)) if gitcmd.stdout and not quiet and output_redir: output_redir.write(gitcmd.stdout) ret = gitcmd.Wait() @@ -2309,7 +2311,8 @@ cmd.append(str(f)) cmd.append('+refs/tags/*:refs/tags/*') - ok = GitCommand(self, cmd, bare=True).Wait() == 0 + ok = GitCommand( + self, cmd, bare=True, objdir=os.path.join(self.objdir, 'objects')).Wait() == 0 platform_utils.remove(bundle_dst, missing_ok=True) platform_utils.remove(bundle_tmp, missing_ok=True) return ok @@ -2504,8 +2507,8 @@ if ref_dir or mirror_git: if not mirror_git: mirror_git = os.path.join(ref_dir, self.name + '.git') - repo_git = os.path.join(ref_dir, '.repo', 'projects', - self.relpath + '.git') + repo_git = os.path.join(ref_dir, '.repo', 'project-objects', + self.name + '.git') worktrees_git = os.path.join(ref_dir, '.repo', 'worktrees', self.name + '.git') @@ -2523,15 +2526,16 @@ # The alternate directory is relative to the object database. ref_dir = os.path.relpath(ref_dir, os.path.join(self.objdir, 'objects')) - _lwrite(os.path.join(self.gitdir, 'objects/info/alternates'), + _lwrite(os.path.join(self.objdir, 'objects/info/alternates'), os.path.join(ref_dir, 'objects') + '\n') m = self.manifest.manifestProject.config for key in ['user.name', 'user.email']: if m.Has(key, include_defaults=False): self.config.SetString(key, m.GetString(key)) - self.config.SetString('filter.lfs.smudge', 'git-lfs smudge --skip -- %f') - self.config.SetString('filter.lfs.process', 'git-lfs filter-process --skip') + if not self.manifest.EnableGitLfs: + self.config.SetString('filter.lfs.smudge', 'git-lfs smudge --skip -- %f') + self.config.SetString('filter.lfs.process', 'git-lfs filter-process --skip') self.config.SetBoolean('core.bare', True if self.manifest.IsMirror else None) except Exception: if init_obj_dir and os.path.exists(self.objdir): @@ -2551,7 +2555,10 @@ # Delete sample hooks. They're noise. for hook in glob.glob(os.path.join(hooks, '*.sample')): - platform_utils.remove(hook, missing_ok=True) + try: + platform_utils.remove(hook, missing_ok=True) + except PermissionError: + pass for stock_hook in _ProjectHooks(): name = os.path.basename(stock_hook) @@ -2813,7 +2820,8 @@ } # Paths that we know will be in both, but are safe to clobber in .repo/projects/. SAFE_TO_CLOBBER = { - 'COMMIT_EDITMSG', 'FETCH_HEAD', 'HEAD', 'gitk.cache', 'index', 'ORIG_HEAD', + 'COMMIT_EDITMSG', 'FETCH_HEAD', 'HEAD', 'gc.log', 'gitk.cache', 'index', + 'ORIG_HEAD', } # First see if we'd succeed before starting the migration. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/repo new/git-repo-2.21/repo --- old/git-repo-2.20/repo 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/repo 2022-01-26 17:46:03.000000000 +0100 @@ -149,7 +149,7 @@ BUG_URL = 'https://bugs.chromium.org/p/gerrit/issues/entry?template=Repo+tool+issue' # increment this whenever we make important changes to this script -VERSION = (2, 17) +VERSION = (2, 21) # increment this if the MAINTAINER_KEYS block is modified KEYRING_VERSION = (2, 3) @@ -382,6 +382,11 @@ group.add_option('--no-clone-bundle', dest='clone_bundle', action='store_false', help='disable use of /clone.bundle on HTTP/HTTPS (default if --partial-clone)') + group.add_option('--git-lfs', action='store_true', + help='enable Git LFS support') + group.add_option('--no-git-lfs', + dest='git_lfs', action='store_false', + help='disable Git LFS support') # Tool. group = parser.add_option_group('repo Version options') @@ -618,6 +623,7 @@ "REPO_URL set correctly?" % url, file=sys.stderr) except CloneFailure: + print('fatal: double check your --repo-rev setting.', file=sys.stderr) if opt.quiet: print('fatal: repo init failed; run without --quiet to see why', file=sys.stderr) Binary files old/git-repo-2.20/subcmds/__pycache__/__init__.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/__init__.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/abandon.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/abandon.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/branches.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/branches.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/checkout.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/checkout.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/cherry_pick.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/cherry_pick.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/diff.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/diff.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/diffmanifests.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/diffmanifests.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/download.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/download.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/forall.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/forall.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/gitc_delete.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/gitc_delete.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/gitc_init.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/gitc_init.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/grep.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/grep.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/help.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/help.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/info.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/info.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/init.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/init.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/list.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/list.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/manifest.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/manifest.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/overview.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/overview.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/prune.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/prune.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/rebase.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/rebase.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/selfupdate.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/selfupdate.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/smartsync.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/smartsync.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/stage.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/stage.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/start.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/start.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/status.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/status.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/sync.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/sync.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/upload.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/upload.cpython-38.pyc differ Binary files old/git-repo-2.20/subcmds/__pycache__/version.cpython-38.pyc and new/git-repo-2.21/subcmds/__pycache__/version.cpython-38.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/subcmds/branches.py new/git-repo-2.21/subcmds/branches.py --- old/git-repo-2.20/subcmds/branches.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/subcmds/branches.py 2022-01-26 17:46:03.000000000 +0100 @@ -151,7 +151,7 @@ fmt = out.write paths = [] non_cur_paths = [] - if i.IsSplitCurrent or (in_cnt < project_cnt - in_cnt): + if i.IsSplitCurrent or (in_cnt <= project_cnt - in_cnt): in_type = 'in' for b in i.projects: if not i.IsSplitCurrent or b.current: @@ -163,9 +163,9 @@ in_type = 'not in' have = set() for b in i.projects: - have.add(b.project) + have.add(b.project.relpath) for p in projects: - if p not in have: + if p.relpath not in have: paths.append(p.relpath) s = ' %s %s' % (in_type, ', '.join(paths)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/subcmds/init.py new/git-repo-2.21/subcmds/init.py --- old/git-repo-2.20/subcmds/init.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/subcmds/init.py 2022-01-26 17:46:03.000000000 +0100 @@ -291,6 +291,15 @@ if opt.submodules: m.config.SetBoolean('repo.submodules', opt.submodules) + if opt.git_lfs is not None: + if opt.git_lfs: + git_require((2, 17, 0), fail=True, msg='Git LFS support') + + m.config.SetBoolean('repo.git-lfs', opt.git_lfs) + if not is_new: + print('warning: Changing --git-lfs settings will only affect new project checkouts.\n' + ' Existing projects will require manual updates.\n', file=sys.stderr) + if opt.use_superproject is not None: m.config.SetBoolean('repo.superproject', opt.use_superproject) @@ -520,8 +529,12 @@ # Handle new --repo-rev requests. if opt.repo_rev: wrapper = Wrapper() - remote_ref, rev = wrapper.check_repo_rev( - rp.gitdir, opt.repo_rev, repo_verify=opt.repo_verify, quiet=opt.quiet) + try: + remote_ref, rev = wrapper.check_repo_rev( + rp.gitdir, opt.repo_rev, repo_verify=opt.repo_verify, quiet=opt.quiet) + except wrapper.CloneFailure: + print('fatal: double check your --repo-rev setting.', file=sys.stderr) + sys.exit(1) branch = rp.GetBranch('default') branch.merge = remote_ref rp.work_git.reset('--hard', rev) Binary files old/git-repo-2.20/tests/__pycache__/test_editor.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_editor.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_error.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_error.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_command.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_command.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_config.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_config.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_superproject.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_superproject.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_git_trace2_event_log.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_git_trace2_event_log.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_hooks.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_hooks.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_manifest_xml.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_manifest_xml.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_platform_utils.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_platform_utils.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_project.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_project.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_ssh.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_ssh.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_subcmds.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_subcmds.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_subcmds_init.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_subcmds_init.cpython-38-pytest-6.2.5.pyc differ Binary files old/git-repo-2.20/tests/__pycache__/test_wrapper.cpython-38-pytest-6.2.5.pyc and new/git-repo-2.21/tests/__pycache__/test_wrapper.cpython-38-pytest-6.2.5.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/tests/fixtures/.repo_not.present.gitconfig.json new/git-repo-2.21/tests/fixtures/.repo_not.present.gitconfig.json --- old/git-repo-2.20/tests/fixtures/.repo_not.present.gitconfig.json 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/tests/fixtures/.repo_not.present.gitconfig.json 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1 @@ +{} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/tests/fixtures/.repo_test.gitconfig.json new/git-repo-2.21/tests/fixtures/.repo_test.gitconfig.json --- old/git-repo-2.20/tests/fixtures/.repo_test.gitconfig.json 1970-01-01 01:00:00.000000000 +0100 +++ new/git-repo-2.21/tests/fixtures/.repo_test.gitconfig.json 2022-01-26 17:46:03.000000000 +0100 @@ -0,0 +1,38 @@ +{ + "section.empty": [ + null + ], + "section.nonempty": [ + "true" + ], + "section.boolinvalid": [ + "oops" + ], + "section.booltrue": [ + "true" + ], + "section.boolfalse": [ + "false" + ], + "section.intinvalid": [ + "oops" + ], + "section.inthex": [ + "0x10" + ], + "section.inthexk": [ + "0x10k" + ], + "section.int": [ + "10" + ], + "section.intk": [ + "10k" + ], + "section.intm": [ + "10m" + ], + "section.intg": [ + "10g" + ] +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/git-repo-2.20/tests/test_project.py new/git-repo-2.21/tests/test_project.py --- old/git-repo-2.20/tests/test_project.py 2022-01-10 18:41:45.000000000 +0100 +++ new/git-repo-2.21/tests/test_project.py 2022-01-26 17:46:03.000000000 +0100 @@ -382,7 +382,7 @@ # Make sure the dir was transformed into a symlink. self.assertTrue(dotgit.is_symlink()) - self.assertEqual(str(dotgit.readlink()), '../../.repo/projects/src/test.git') + self.assertEqual(os.readlink(dotgit), '../../.repo/projects/src/test.git') # Make sure files were moved over. gitdir = tempdir / '.repo/projects/src/test.git' ++++++ git-repo.obsinfo ++++++ --- /var/tmp/diff_new_pack.IIhTaY/_old 2022-02-11 23:12:15.655440796 +0100 +++ /var/tmp/diff_new_pack.IIhTaY/_new 2022-02-11 23:12:15.659440807 +0100 @@ -1,5 +1,5 @@ name: git-repo -version: 2.20 -mtime: 1641836505 -commit: 98bb76577d9e7e0ffdeb643f1654ec006f6bbc8c +version: 2.21 +mtime: 1643215563 +commit: 8e91248655acf1c8044ed8c1b265b804a99eb07f
