![]() Larger commits that touch multiple modules should be reviewed and approved by the set of affected maintainers. Maintainers can directly commit bug fixes to their maintained modules without review/approval by other maintainers, although a review phase is recommended for non-trivial fixes.Users who are not maintainers can create Merge Requests for small items such as these, for maintainers to review. Maintainers can commit obvious non-critical fixes (documentation improvements, typos etc.) directly into the master branch.More complicated merges might not be able to be fast forwarded, with the result that there will be a merge commit upon the merge.Merge commits can be avoided in simple cases. Merges to the ns-3 master branch are fast forwarded when possible, and commits can be squashed as appropriate, to maintain a clean linear history.The hotfix release is tagged with the hotfix version number, and merged back to the master branch. Changesets from master branch (such as bug fixes) may be cherry-picked to the hotfix branch. If a hotfix release must be made to update a past release, a new hotfix support branch will be created by branching from the tip of the last relevant release.However, the modified VERSION file is not merged back to master. Releases can be identified by a Git tag, and a modified VERSION file in the branch. Releases are made by creating a branch from the master branch and tagging the branch with the release number when ready, and then merging the release branch back to the master branch.The project maintains only this one branch and strives to maintain a mostly linear history on it. The main repository’s master branch is the main development branch.However, they should be aware of the project’s workflow: The guidelines listed below also largely pertain to the user who is using (and cloning) bake from the repository.Įxperienced Git users will not necessarily need instruction on how to set up personal repositories (below). See other project documentation such as the ns-3 tutorial for descriptions on bundled releases distributed as source archives, or on the bake build tool for managing multiple repositories. This manual chapter does not cover this use case it only focuses on the single ns-3-dev repository. ns-3 users often combine ns-3-dev with other repositories (netanim, apps from the app store). Since the first part is shared, in this manual section we will start with a personal repository and then explain what to do in some typical cases. This section of the manual provides common tips for both users and maintainers. We recommend that users who have been working from one of these mirrors repoint their remotes so that they pull origin or upstream from (see below explanation about how to configure remotes). For convenience and historical reasons, ns-3-dev mirrors are currently posted on and, and kept in sync with the official repository periodically via cron jobs. The ns-3 project is officially hosted on at. ![]() The most up-to-date guide is the Git Book, at. While Git and mercurial have a lot of common properties, if you are new to Git you should read first an introduction to it. Git is a VCS like Mercurial, Subversion or CVS, and it is used to maintain many open-source (and closed-source) projects. Is there any reason for your "periodic pushes"? If no one else is working on the same branch it would be perfectly fine, just to push after finishing everything.The ns-3 project used Mercurial in the past as its source code control system, but it has moved to Git in December 2018. ![]() ![]() Usually you just want git pull -rebase which is essentially git fetch plus git rebase, and creates a much cleaner history. (equivalent to giving the -ff-only option from the command line).īe aware that git pull is just a combination of git fetch and git merge. ![]() When set to only, only such fast-forward merges are allowed This variable tells Git to create an extra merge commit in such aĬase (equivalent to giving the -no-ff option from the command Tip of the current branch is fast-forwarded. You can omit the -no-ff after setting git config -global merge.ff false.īy default, Git does not create an extra merge commit when mergingĪ commit that is a descendant of the current commit. Git fetch updates your remote branches, there usually is no need to have a local copy of a branch when your are not planning to work on this branch. ![]()
0 Comments
Leave a Reply. |