![]() ![]() This ensures that for a given point in time in QEMU GIT history, there is always an exact corresponding point in time in each submodule's GIT history. Updating submodules to latest upstream codeĮach submodule used by QEMU has an associated upstream changeset hash associated with it. ![]() Thus to fully clean a source directory requires If wishing to test build from a completely pristine source directory state, it is important to be aware that a simple 'git clean' will NOT purge checked out submodules. 'make' will now proceed with the rest of the QEMU build as normal, so this automatic checkout of submodules should be transparent to most developers.Ĭleaning up submodules from source checkout This will checkout each submodule in the source directory, and then return the status in the. $ $SRC_DIR/scripts/git-submodule.sh update LIST OF MODULES If 'make' learnt that the submodule checkout was out of date it will then run If any listed submodule is not checked out, or checked out with the wrong changeset hash, it will exit with non-zero status. git-submodule-status file against the expected changeset hashes for each submodule. $ $SRC_DIR/scripts/git-submodule.sh status LIST OF MODULES When 'make' runs the first thing it will do is invoke ![]() GIT submodules ui/keycodemapdb dtc capstone When 'configure' runs it will determine which submodules are to be used and print a list of them in the summary output. dtc) are optional depending on build config & host system. ui/keycodemapdb) are compulsory for all builds, while other modules (e.g. When the build is performed various the submodules need to be checked out in the source directory with the matching changeset hash. The QEMU GIT repository records a changeset hash for each submodule it includes. What follows in this page will explain the way submodules are handled and how to deal with unusual build environment requirements that may arise. In general this should be transparent to developers, but there are some development build environments in which automatic submodule updates will not work. QEMU uses GIT submodules to reference code from a number of 3rd party source repositories.įor developers building QEMU from official releases, there is no need to understand git submodules as the 3rd party source is all bundled into the tar.xz when releases are created.įor developers building QEMU directly from GIT, however, 'make' will attempt to automatically populated the submodules with the requisite content. ![]() 1.4.2 Builds on machines without direct network access.1.4 Building when automatic submodule update fails.1.3 Updating submodules to latest upstream code.1.2 Cleaning up submodules from source checkout.When you are inside the submodule, you can treat it just like a normal repo, and when you are in the parent repository, you can "add" to change the current commit pointer.īut the traditional downside is that you either have to have your users know git submodule commands, so they can init and update the repo, or they have to add -recursive when they initially clone your repo. The relative path to the repo is important it allows you to keep the same access method (ssh or https) as the parent repository. If you want to add a Git repository on the same service (GitHub, GitLab, BitBucket, etc), the following is the correct Git command to set that up as a submodule in the extern directory: gitbook $ git submodule add. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |