summaryrefslogtreecommitdiffstats
path: root/git_config.py
Commit message (Collapse)AuthorAgeFilesLines
* Log repo.* config variables in git trace2 logger.Ian Kasprzak2021-03-081-0/+15
| | | | | | | | | | | | | Bug: [google internal] b/181758736 Testing: - Unit tests - Verified repo git trace2 logs had expected data Change-Id: I9af8a574377bd91115f085808c1271e9dee16a36 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/299182 Tested-by: Ian Kasprzak <iankaz@google.com> Reviewed-by: Mike Frysinger <vapier@google.com> Reviewed-by: Raman Tenneti <rtenneti@google.com>
* git_config: add SetBoolean helperMike Frysinger2021-02-111-0/+6
| | | | | | | | | A little sugar simplifies the code a bit. Change-Id: Ie2b8a965faa9f9ca05c7be479d03e8e073cd816d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/296522 Reviewed-by: Raman Tenneti <rtenneti@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* drop pyversion & is_python3 checkingMike Frysinger2021-01-061-17/+3
| | | | | | | | | | | We're committed to Python 3 at this point, so purge all the is_python3 related dynamic checks. Bug: https://crbug.com/gerrit/10418 Change-Id: I4c8b405d6de359b8b83223c9f4b9c8ffa18ea1a2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/292383 Reviewed-by: Chris Mcdonald <cjmcdonald@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* strip python2-only coding:utf-8 & print_function settingsMike Frysinger2021-01-061-4/+0
| | | | | | | | | | We're committed to Python 3 at this point, so clean up boilerplate. Bug: https://crbug.com/gerrit/10418 Change-Id: Ib1719ba2eb65c53b94881a1a1bf203ddfcaaafed Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/292382 Reviewed-by: Chris Mcdonald <cjmcdonald@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* Parse included files when reading git config filesUlrik Laurén2020-04-291-1/+1
| | | | | | | | | | | | | Git config files may have an include tag pointing to another file. The included file is not parsed unless “git config --list” is explicitly told to follow includes by adding the argument ”--includes”. This change add the "--includes" when parsing the global gitconfig file. Change-Id: I892c9a3a748754c1eb8c9e220578305ca5850dd5 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/264759 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: Ulrik Laurén <ulrik.lauren@gmail.com>
* git_config: add support for repo-specific settingsMike Frysinger2020-02-201-1/+9
| | | | | | | | | | | This allows people to write ~/.repoconfig/config akin to ~/.gitconfig and .repo/config akin to .git/config. This allows us to add settings specific to repo without mixing up git, and to persist in general. Change-Id: I1c6fbe31e63fb8ce26aa85335349c6ae5b1712c6 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/255832 Reviewed-by: David Pursehouse <dpursehouse@collab.net> Tested-by: Mike Frysinger <vapier@google.com>
* git_config: add GetInt helperMike Frysinger2020-02-191-0/+37
| | | | | | | Change-Id: Ic034ae2fd962299d1b352e597b391b6582ecf44b Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256052 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: Jonathan Nieder <jrn@google.com>
* resort a few module imports to follow PEP8Mike Frysinger2020-02-181-2/+2
| | | | | | | | | All the stdlib imports are supposed to come before any local imports. Change-Id: I10c0335ba2ff715fd34c9eb91bfe6560e904df08 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/255593 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: David Pursehouse <dpursehouse@collab.net>
* git_config: Stop using backslash to wrap linesDavid Pursehouse2020-02-121-7/+6
| | | | | | | | | | Unwrap one unnecessarily wrapped line, and use parentheses on a wrapped condition instead of wrapping with backslashes. Change-Id: I12679a0547dd822b15a6551e0f6c308239ff7b2d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254607 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: David Pursehouse <dpursehouse@collab.net>
* Fix blank line issues reported by flake8David Pursehouse2020-02-121-0/+16
| | | | | | | | | | | | | | | | | | | | - E301 expected 1 blank line - E302 expected 2 blank lines - E303 too many blank lines - E305 expected 2 blank lines after class or function definition - E306 expected 1 blank line before a nested definition Fixed automatically with autopep8: git ls-files | grep py$ | xargs autopep8 --in-place \ --select E301,E302,E303,E305,E306 Manually fix issues in project.py caused by misuse of block comments. Change-Id: Iee840fcaff48aae504ddac9c3e76d2acd484f6a9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254599 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: David Pursehouse <dpursehouse@collab.net>
* Fix indentation issues reported by flake8David Pursehouse2020-02-121-10/+10
| | | | | | | | | | | | | | | | | | | | | - E121 continuation line under-indented for hanging indent - E122 continuation line missing indentation or outdented - E125 continuation line with same indent as next logical line - E126 continuation line over-indented for hanging indent - E127 continuation line over-indented for visual indent - E128 continuation line under-indented for visual indent - E129 visually indented line with same indent as next logical line - E131 continuation line unaligned for hanging indent Fixed automatically with autopep8: git ls-files | grep py$ | xargs autopep8 --in-place \ --select E121,E122,E125,E126,E127,E128,E129,E131 Change-Id: Ifd95fb8e6a1a4d6e9de187b5787d64a6326dd249 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254605 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: David Pursehouse <dpursehouse@collab.net>
* git_config: Unwrap unnecessarily wrapped lineDavid Pursehouse2020-02-121-3/+1
| | | | | | | Change-Id: I56806e8b9b09cd0f7fb834d7edc412682f2af1db Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254604 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: David Pursehouse <dpursehouse@collab.net>
* Fix various whitespace issues reported by pyflakesDavid Pursehouse2020-02-121-5/+5
| | | | | | | | | | | | | | | | | | | | | | - E201 whitespace after '[' - E202 whitespace before '}' - E221 multiple spaces before operator - E222 multiple spaces after operator - E225 missing whitespace around operator - E226 missing whitespace around arithmetic operator - E231 missing whitespace after ',' - E261 at least two spaces before inline comment - E271 multiple spaces after keyword Fixed automatically with autopep8: git ls-files | grep py$ | xargs autopep8 --in-place \ --select E201,E202,E221,E222,E225,E226,E231,E261,E271 Change-Id: I367113eb8c847eb460532c7c2f8643f33040308c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254601 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: David Pursehouse <dpursehouse@collab.net>
* Fix flake8 E251 unexpected spaces around keyword / parameter equalsDavid Pursehouse2020-02-121-12/+12
| | | | | | | | | | | Fixed automatically with autopep8: git ls-files | grep py$ | xargs autopep8 --in-place --select E251 Change-Id: I58009e1c8c91c39745d559ac919be331d4cd9e77 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/254598 Tested-by: David Pursehouse <dpursehouse@collab.net> Reviewed-by: Mike Frysinger <vapier@google.com>
* git_config: fix encoding handling in GetUrlCookieFileMike Frysinger2020-02-081-2/+2
| | | | | | | | | | Make sure we decode the bytes coming from the subprocess.Popen as we're treating them as strings. Change-Id: I44100ca5cd94f68a35d489936292eb641006edbe Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/253973 Reviewed-by: Jonathan Nieder <jrn@google.com> Tested-by: Mike Frysinger <vapier@google.com>
* use open context managers in more placesMike Frysinger2019-11-121-12/+3
| | | | | | | | | | Use open() as a context manager to simplify the close logic and make the code easier to read & understand. This is also more Pythonic. Change-Id: I579d03cca86f99b2c6c6a1f557f6e5704e2515a7 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/244734 Reviewed-by: David Pursehouse <dpursehouse@collab.net> Tested-by: Mike Frysinger <vapier@google.com>
* rename local trace moduleMike Frysinger2019-08-271-1/+1
| | | | | | | | | | There is a standard Python "trace" module, so having a local trace.py prevents us being able to import that. Rename the module to avoid. Change-Id: I23e29ec95a2204bb168a641323d05e76968d9b57 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/234832 Reviewed-by: David Pursehouse <dpursehouse@collab.net> Tested-by: Mike Frysinger <vapier@google.com>
* git_config: include project name in missing ref exceptionMike Frysinger2019-08-031-1/+2
| | | | | | | | | | | | When syncing in parallel, this exception is hard to trace back to a specific repo as the relevant log line could have been pushed out by other repos syncing code. Change-Id: I382efeec7651e85622aa51e351134aef0148267f Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/233075 Reviewed-by: David Pursehouse <dpursehouse@collab.net> Reviewed-by: Nasser Grainawi <nasser@codeaurora.org> Tested-by: Mike Frysinger <vapier@google.com>
* handle binary stream from urllib.request.urlopenMike Frysinger2019-07-041-1/+2
| | | | | | | | Python 3 returns bytes by default with urlopen. Adjust our code to handle that scenario and decode as necessary. Bug: https://crbug.com/gerrit/10418 Change-Id: Icf4cd80e7ef92d71a3eefbc6113f1ba11c32eebc
* set default file encoding to utf-8Mike Frysinger2019-06-131-0/+1
| | | | | | | | There's no reason to support any other encoding in these files. This only affects the files themselves and not streams they open. Bug: https://crbug.com/gerrit/10418 Change-Id: I053cb40cd3666ce5c8a0689b9dd938f24ca765bf
* Add support for long pathsRenaud Paquay2018-10-221-1/+1
| | | | | | | | | | | | | | | | | | | | * Add more file i/o wrappers in platform_utils to allow using long paths (length > MAX_PATH) on Windows. * Paths using the long path syntax ("\\?\" prefix) should never escape the platform_utils API surface area, so that this specific syntax is not visible to the rest of the repo code base. * Forward many calls from os.xxx to platform_utils.xxx in various place to ensure long paths support, specifically when repo decides to delete obsolete directories. * There are more places that need to be converted to support long paths, this commit is an initial effort to unblock a few common use cases. * Also, fix remove function to handle directory symlinks Change-Id: If82ccc408e516e96ff7260be25f8fd2fe3f9571a
* fix some sync error while using python3Dylan Deng2018-07-241-1/+3
| | | | Change-Id: I70925e48756c356d48359679d8ad1b9e33a68595
* Remove unused pylint suppressionsDavid Pursehouse2018-07-241-2/+1
| | | | | | | | | | | pylint is not used since bb5b1a0. The pyflakes cleanup mentioned in that commit has not been done, but given that this project is no longer being actively developed I don't think it's worth spending time doing it. Leaving the pylint suppressions causes confusion because it leads people to think that we are still using pylint. Change-Id: If7d9f280a0f408c780f15915ffdb80579ae21f69
* Take care of a tilde on cookie file pathDaichi Ueura2018-02-261-2/+5
| | | | | | This handles cookie file path like "~/.gitcookies". Change-Id: I87ba120a940fff38073d520f83b70654e6a239ba
* Replace all os.remove callsRenaud Paquay2017-08-311-3/+4
| | | | | | | | os.remove raises an exception when deleting read-only files on Windows. Replace all calls with calls to platform_utils.remove, which deals with deals with that issue. Change-Id: I4dc9e0c9a36b4238880520c69f5075eca40f3e66
* Merge "Fixed upload to remotes with the url ssh://hostname"David Pursehouse2017-08-301-2/+2
|\
| * Fixed upload to remotes with the url ssh://hostnameChristian Koestlin2017-08-291-2/+2
| | | | | | | | Change-Id: I1d0dd4d3f90eac45205f6f4ca98a29b0babdbc3f
* | Merge "Add option '--no-cert-checks' for 'upload' sub command."David Pursehouse2017-08-301-2/+7
|\ \ | |/ |/|
| * Add option '--no-cert-checks' for 'upload' sub command.Łukasz Gardoń2017-08-231-2/+7
| | | | | | | | | | | | | | This option allow to bypass verification ssl certification while establishing connection with Gerrit to upload review. Change-Id: If2e15f5a273c18a700eb5093ca8a4d5a4cbf80cd
* | When starting a branch, do not use a tag or change value for branch.mergeZac Livingston2017-08-251-2/+10
|/ | | | | | | | | | | | | When starting a branch, branch.merge is set to project revision unless the revision is a SHA1. In that case, branch.merge is set to dest_branch if defined or manifest default revision otherwise. This special handling allows repo upload to work when the project revision is a SHA1. Extend the special handling to also happen when the project revision is a tag value or a change value so that repo upload will work in those case as well. Change-Id: Iff81ece40e770cd02535e80dcb023564d42dcf47
* Add option REPO_IGNORE_SSH_INFO to ignore ssh_infoTimo Lotterbach2017-05-261-0/+3
| | | | | | | | | | | | | | | | | | | This is required for setups, where Gerrit access using ssh is only available for some networks. For network without ssh access, repo will get ssh_info from Gerrit and use ssh for communications - which will fail. To support this setup we need to have an option to ignore the ssh_info provided by Gerrit and use http(s). Using git insteadOf as alternative results in the inability to add reviewers using "repo upload --re=...", since the syntax of adding reviewers differs for ssh and https. repo is assuming an ssh connection and uses "git push --receive-pack=...", which will fail since git silently uses https for push operation. repo must be aware that https is used so it uses "git push remote ...:refs/for/...%r=..." for upload. Change-Id: Idd83baef0fb26ffcc9ac65e204b68d323ce177a1
* Revert "Repo: fall back to http, if ssh connection fails for http repos"v1.12.36Dan Willemsen2016-09-221-4/+1
| | | | | | | | This reverts commit 488bf092d5992bd1b8f8681c444f2cc283d05bcb. Issue 230 Change-Id: I3a5725301f576e1a2ac499cb6daa631895115640
* implement optional 'pushurl' in the manifest fileSteve Rae2016-09-201-0/+5
| | | | | | | | Allow the 'remote' element in the manifest file to define an optional 'pushurl' attribute which is passed into the .git/config file. Change-Id: If342d299d371374aedc4440645798888869c9714 Signed-off-by: Steve Rae <steve.rae@raedomain.com>
* Merge "Repo: improve error detection for new ssh connections"David Pursehouse2016-09-201-1/+5
|\
| * Repo: improve error detection for new ssh connectionsTimo Lotterbach2016-08-301-1/+5
| | | | | | | | | | | | | | | | this check can only detect errors that happen within 1 sec after launching ssh. But this is typically enough to catch configuration issues like 'connection refused' or 'authentication failed'. Change-Id: I00b6f62d4c2889b1faa6c820e49a198554c92795
* | Repo: fall back to http, if ssh connection fails for http reposTimo Lotterbach2016-08-301-1/+4
|/ | | | | | | | | | | | | | if a gerrit server has ssh and https access enabled, but user access (for some users) is limited to https, 'repo upload' command will fail for them. Gerrit returns a ssh configuration (gerrit/ssh_info), that does not work for users limited to https. With this patch repo will test, if the returned ssh configuration from gerrit/ssh_info is working. if not, it will fall back to https for upload. Change-Id: If98f472e994f350bf71f35610cd649b163f1ab33
* Support smart-sync through persistent-http[s]Dan Willemsen2015-08-191-0/+39
| | | | | | | Use the same cookies and proxy that git traffic goes through for persistent-http[s] to support authentication for smart-sync. Change-Id: I20f4a281c259053a5a4fdbc48b1bca48e781c692
* git_config: fix _SaveJson typoAnthony King2015-06-041-1/+1
| | | | Change-Id: I35ca2b3733e6d1508669f9a6690c6645c582912e
* git_config: add support for remote '.'v1.12.19Yann Droneaud2015-03-061-1/+1
| | | | | | | | | | | | | | | | | | | As a fix for issue #149, this patch add support for the remote '.' (local). As an alias for the local repository, remote '.' is lacking a fetch = config in .git/config. Without such refspec, repo info --overview is not able to process a local tracking branch. v2: Check for name == '.' before checking if merge starts with refs/, since the case where it's not is invalid. Signed-off-by: Yann Droneaud <ydroneaud@opteya.com> Signed-off-by: Filipe Brandenburger <filbranden@google.com> Change-Id: I8c8fd8602cd68baecb530301ae41d37d751ec85d
* Support persistent-http(s) review urlsConley Owens2014-10-231-0/+2
| | | | Change-Id: I8e0065685c968dfa9dc26bcdb6ee2fa14019c509
* Support specifying non-HEADS refs as upstreamNasser Grainawi2014-10-091-2/+4
| | | | | | | | | While not typical, some users might have an upstream that isn't in the usual refs/heads/* namespace. There's no reason not to use those refs as the value for the upstream attribute, so support doing so. Change-Id: I5b119f1135c3268c20e7c4084682e860d3ee1fb1
* Don't open non-binary files as binaryChirayu Desai2014-08-191-1/+1
| | | | | | * Don't pen the git config file, and the git ".lock" file as binary. Change-Id: I7b3939658456f2fd0a0500443cdd8d1ee1a4459d
* Merge "Fix UrlInsteadOf to handle multiple strings"Conley Owens2014-06-301-3/+3
|\
| * Fix UrlInsteadOf to handle multiple stringsDan Willemsen2014-03-061-3/+3
| | | | | | | | | | | | | | For complex .gitconfig url rewrites, multiple insteadOf lines may be used for a url. Search all of them for the right rewrite. Change-Id: If5e9ecd054e86226924b0baf513801cd57c389cd
* | Use JSON instead of pickleAnthony King2014-05-071-32/+22
|/ | | | | | | Use JSON as it is shown to be much faster than pickle. Also clean up the loading and saving functions. Change-Id: I45b3dee7b4d59a1c0e0d38d4a83b543ac5839390
* Stop appending 'p/' to review urlsConley Owens2014-02-041-1/+1
| | | | | | | Gerrit no longer requires 'p/', and this causes unexpected behavior. In this change we stop appending 'p/' to the urls. Change-Id: I72c13bf838f4112086141959fb1af249f9213ce6
* Changes to support sso: repositories for uploadSteve Pucci2014-01-311-1/+4
| | | | Change-Id: Iddf90d52f700a1f6462abe76d4f4a367ebb6d603
* Fix some python3 encoding issuesChirayu Desai2013-11-211-2/+2
| | | | | | * Add .decode('utf-8') where needed * Add 'b' to `open` where needed, and remove where unnecessary Change-Id: I0f03ecf9ed1a78e3b2f15f9469deb9aaab698657
* Assume http upload if ssh_info cannot be parsedConley Owens2013-09-271-7/+4
| | | | | | | | | | | | When uploading a change for review, we sometimes request /ssh_info to get the correct port number for uploading via ssh (regardless of whether or not we intend to upload over ssh). If we have trouble accessing /ssh_info (for authentication reasons, etc), we now press on under the assumption that we will upload via http instead of aborting. Change-Id: Ica6bbeac1279e89424a903529649b7f4af0b6937
* Handle HTTPException when attempting to get ssh_infoDavid Pursehouse2013-05-251-0/+6
| | | | | | | | | | | The call to `urlopen` can raise `HTTPException`, but this is not caught which results in a python Traceback. Add handling of the exception. Because `HTTPException` and its derived classes do not have any message, print the name of the exception in the error message instead. Change-Id: Ic90fb4cc0e92702375cd976d4a03876c8ce8bffc