newdevs:git:test
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
newdevs:git:test [2019/06/28 17:07] – created tmccanna | newdevs:git:test [2023/06/01 11:58] (current) – udpate branch name from main to master gmcharlton | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | **New Developers Working Group** | ||
====== Git for Windows ====== | ====== Git for Windows ====== | ||
===== Using Git to Test Patches ===== | ===== Using Git to Test Patches ===== | ||
- | ==== 1. Update Your Local Repository | + | ===== 1. Get the Commit Hash ===== |
- | - Open Git Bash | + | First, you will need to identify the unique commit ID (hash) of the patch you wish to test. This is most easily found by clicking on a link in the related launchpad bug. Once there, copy the first 7+ characters from the unique commit code. |
- | - Navigate into your Evergreen repository | + | |
- | - If the master branch isn't currently checked out, check it out: git checkout master | + | |
- | - Make sure your local repository | + | |
- | ==== 2. Identify the Commit ID for the Patch ==== | + | {{ : |
- | Identify the unique commit identifier for the patch you wish to test. This is found by clicking on a link in the related launchpad bug, or navigating | + | ===== 2. Load the Patch to Your Test Server ===== |
- | {{ : | + | The next steps will be somewhat different depending on whether you have direct |
- | ==== 3. Create a Local Testing | + | ===== Option A: Testing |
- | - Create and checkout a local testing branch: git checkout -b lp12345 | + | ==== A1. Update Your Local Repository ==== |
- | - Pull changes into the testing branch using the unique commit id: git cherry-pick 7ab7281f5 | + | |
- | - Test the changes on your test server. | + | |
- | **//NEED MORE INFO | + | - Open Git Bash on your computer. |
- | * If you have direct | + | - Navigate into your Evergreen repository. |
- | * If you do not have Git Bash access to your test server, but you have file system access to your test server through WinSCP or a similar FTP-style program, manually copy the changed files to your server for testing. | + | |
- | //** | + | - Make sure your local repository is current: **git pull** |
- | ==== 4. Create a Sign-Off | + | ==== A2. Create a Testing |
- | If testing | + | - Create and checkout a local testing |
+ | * This branch does not have to have the same name as the branch you will be testing, but it makes it easier to keep track of. | ||
+ | - Pull changes into the testing branch using the unique commit id: **git cherry-pick 7ab7281f5** | ||
+ | * If you receive an error while cherry picking, you can stop it: **git cherry-pick --abort** | ||
+ | * If the branch has multiple commits, you can cherry-pick them one at a time (oldest to newest) or you can cherry-pick a range of commits at once (oldest to newest): **git cherry-pick 7ab7281f5^..8lgls9a34** | ||
- | If testing //is// successful, acknowledge it by adding a sign-off branch: | + | ==== A3. Upload Changed Files ==== |
- | //** NEED BETTER INSTRUCTIONS HERE - I still don' | + | Using WinSCP (or your other FTP-style program), transfer each of the changed files in the patch from your local repository to the related ' |
+ | |||
+ | |||
+ | |||
+ | ===== Option B: Testing When You Have Direct Git Access to Your Test Server ===== | ||
+ | |||
+ | //Note: Your test server does not need to have an SSH key if you are just pulling branches for testing. Instead, you can set up your connection to the remote working repo as read-only: < | ||
+ | |||
+ | ==== B1. Update Your Repository ==== | ||
+ | |||
+ | - Open Git Bash on the server as the root user. | ||
+ | - Navigate into your Evergreen repository. | ||
+ | - If the main branch isn' | ||
+ | - Make sure your local repository is current: **git pull** | ||
+ | |||
+ | ==== B2. Create | ||
+ | |||
+ | - Create and checkout | ||
+ | * This branch | ||
+ | | ||
+ | * If you receive an error while cherry picking, you can stop it: **git cherry-pick --abort | ||
+ | ** | ||
+ | ==== B3. Upload Changed Files ==== | ||
+ | |||
+ | Copy each file to the ' | ||
<code bash> | <code bash> | ||
- | git push working lp12345: | + | cp Open-ILS/src/ |
</ | </ | ||
+ | ===== 3. Restart Services as Needed ===== | ||
- | ==== 5. Update Launchpad ==== | + | If you are only testing changes to template (tt2) files or basic javascript files, then just clearing the browser cache may be sufficient. |
- | - In the relevant launchpad but, add the " | + | If you are testing changes to configuration files, Perl files, or javascript files, you may also need to restart various services (these instructions require command line access to the root user on the test server). |
- | - Also, add a link in the comments | + | |
- | ===== Useful Git Bash Commands ===== | + | To restart OpenSRF (this restarts Evergreen): |
+ | <code bash> | ||
+ | su - opensrf -c "bash -i -c '/ | ||
+ | </ | ||
- | **Git Commands** | + | To restart Autogen |
- | * git add myfile.txt --> stage a specific file | + | <code bash> |
- | * git add -A --> stage all modified files in the current directory and subdirectories | + | su - opensrf |
- | * git add . --> | + | </code> |
- | * git branch --> list existing local branches | + | |
- | * git branch mynewbranch --> create a new branch | + | |
- | * git branch -m oldbranchname newbranchname --> change name of branch | + | |
- | * git branch -D branchname --> delete a local branch (cannot delete a branch you currently have checked out, so switch to different branch first) | + | |
- | * git checkout mybranch --> check out an existing branch | + | |
- | * git checkout -b mynewbranch --> create a new branch and check it out at the same time | + | |
- | * git checkout master --> switch to master branch | + | |
- | * git checkout -- docname.tt2 --> resets a file you've changed back to its original state (like an undo / revert changes command) | + | |
- | * git clone < | + | |
- | * git commit --> invoke the default text editor to add a commit message | + | |
- | * git commit -m "my commit message" | + | |
- | * git commit | + | |
- | * git commit < | + | |
- | * git commit -a --> combine the git add and git commit steps into a single step (does //not// include newly created files) | + | |
- | * git config < | + | |
- | * git config < | + | |
- | * git fetch < | + | |
- | * git help --> access the built-in Git help documentation. | + | |
- | * git log < | + | |
- | * git pull --> imports all updates from your default remote repo to your default local repo (usually, this is equivalent to 'git pull origin master' | + | |
- | * git pull origin master --> import all updates from remote origin repo to local master repo | + | |
- | * git pull < | + | |
- | * git push working mybranchname --> push changes to the remote working directory | + | |
- | * git push working < | + | |
- | * git remote -v --> display remote directories | + | |
- | * git reset HEAD myfile.txt --> unstage a file that has already been staged | + | |
- | * git reset < | + | |
- | * git rm badfile.txt --> delete a file (if the file is being tracked, be sure to add a commit message indicating the file has been deleted) | + | |
- | * git show < | + | |
- | * git status --> display status of current branch | + | |
- | * git version --> displays the installed version of Git | + | |
- | **Other Commands** | + | To restart Apache and WebSockets (the underlying servers/ |
- | * cd --> move back to the home folder | + | <code bash> |
- | * cd foldername --> move from the current folder to a child folder | + | systemctl restart apache2 websocketd-osrf |
- | * cd .. --> move up in the folder hierarchy one level | + | </code> |
- | * clear --> clears your command window giving | + | |
- | * ls --> list all of the folders | + | //If// your test server is running |
- | * mkdir newfoldername | + | <code bash> |
- | * notepad++ newdocname.txt --> create a new file and open it in notepad++ | + | systemctl restart nginx |
- | * notepad++ docname.txt --> edit an existing file in notepad++ | + | </code> |
- | * pwd --> see what folder you are currently in | + | |
+ | If you are testing very large changes, or changes that modify the database, you may need to rebuild | ||
+ | |||
+ | |||
+ | ===== 4. Test ===== | ||
+ | |||
+ | Test everything thoroughly to be sure it solves the problem that the developer wanted to solve. Be sure to test any other related pages/ | ||
+ | |||
+ | ===== 5. Create a Sign-Off Branch ===== | ||
+ | |||
+ | If testing is //not// successful, update the launchpad bug report with details. | ||
+ | If testing //is// successful, acknowledge it by adding a **[[newdevs: | ||
newdevs/git/test.1561756029.txt.gz · Last modified: 2022/02/10 13:34 (external edit)