Confluence will be unusable 23-July-2024 at 06:00 due to a Crowd upgrade.
...
Contact all previous developers and tell them that the repository will move to GitHub. Ask them to push commits that are pending, otherwise, they will need to change the remotes later.
This doesn't apply to software modified from code external to SLAC.
...
You will need to use GitHub's web system to create the repository or the github GitHub CLI tool. A couple of rules:
If you're unfamiliar with GitHub's interface, follow this step-by-step guide with pictures. If you already know how to do this, you may skip this section.
Replace <organization> and <repo> with the proper names in the recipe below. You will need to push every branch that you need. Below is just an example for code created at SLAC, but customized code from the community will have different branches than this example. Don't forget to add --tags to the push command. For code created at SLAC, use the -u argument for the pre-release branch. This will make it the default branch.
Code Block | ||||
---|---|---|---|---|
| ||||
git remote add github-origin https://githubgit@github.com/:<organization>/<repo>.git git push -u github-origin main --tags git push -u github-origin pre-release --tags |
...
We are using this convention to name the tar.gz file: <repo_name>_moved_to_github_see_readme.tar.gz. See this example:
...
language | bash |
---|---|
theme | RDark |
The script in this repository can be used to automate the decommissioning process: https://github.com/slac-epics/migration-scripts/tree/main
This script performs the following tasks for you automatically:
<repo_name>
...
_moved_to_github_see_readme.tar.gz
...
...
As an example, let's decommission timing/bsa:
Code Block |
---|
# Clone the scripts
git clone git@github.com:slac-epics/migration-scripts.git
cd migration-scripts
# Give it the location of the BSA repository on AFS and on GitHub, and run.
./decommission-repo.sh -r $GIT_SITE_TOP/package/timing/bsa.git -u https://github.com/slaclab/bsa.git |
That's it! Now, when you try to push to that repository, you will be greeted with the following text:
Code Block |
---|
$ git push
...
remote:
remote: NOTICE: This repository has been moved to |
Create or edit the README_github file in the repository directory in AFS. Here's what the content looks like:
Code Block | ||||
---|---|---|---|---|
| ||||
$ cat /afs/slac/g/cd/swe/git/repos/package/timing/README_github The modules below were transferred to GitHub. eco already knows it, so if you use eco -m you will get the clone from GitHub. The tar.gz here contains the bare repo and is just for backup purposes. hpsTpr: https://github.com/slaclab/hpsTpr bsa: https://github.com/slaclab/timing_bsabsa.git remote: remote: Pushes here are no longer accepted, please update your remote with: remote: git remote set-url origin git@github.com:slaclab/bsa.git remote: ... |
In your local area (not the release area!), use eco to retrieve the module list:
...
No Format |
---|
# Packages (or non-epics drivers) l2Mps https://githubgit@github.com/:slaclab/l2Mps.git yamlReader https://githubgit@github.com/:slaclab/yamlReader.git hpsTpr https://githubgit@github.com/:slaclab/hpsTpr.git commonATCA https://githubgit@github.com/:slaclab/commonATCA.git bsa https://githubgit@github.com/:slaclab/timing_bsa |
Now commit and push the changes and update them in the release area:
Code Block | ||||
---|---|---|---|---|
| ||||
# Commit our changes to the module list git add modulelist.txt git commit -m "migrate things to GitHub" git push origin master # Go to the release area and pull in the latest changes cd /afs/slac/g/lcls/tools/eco_modulelist git pull |
...
...