-
-
Notifications
You must be signed in to change notification settings - Fork 410
Home
See http://trac.sagemath.org/wiki/QuickStartSageGit
-
In the preferences for your trac account, there is a SSH Keys tab. Add your public keys.
-
The trac server's ssh port is 2222 (rather than the standard 22), so the easiest way to deal with this is add an extra
Host
to your SSH config file (note that your username should begit
). Then you can push and pull usinggit <push|pull> trac:sage.git [ARGS]
An alternative is to add a remote repository to your local sage repository:
git remote add trac ssh://[email protected]:2222/sage.git -t master
Then you can push and pull using
git <push|pull> trac [ARGS]
-
You have push permissions to branches of the form
u/TRAC_USERNAME/*
. So for example, I have permissions to do the followinggit push local_branch:u/ohanar/remote_branch
since my trac username is
ohanar
. However, the following would give me an errorgit push local_branch git push local_branch:master ...
-
To attach a branch to a ticket, push your changes to the trac server and then fill the
Branch
field in the corresponding ticket with the remote branch name. For example, if I have a local branch namedlocal_branch
and I want to attach this branch to ticket #555, I would dogit push local_branch:u/ohanar/remote_branch
and then on trac, I would fill the
Branch
field withu/ohanar/remote_branch
.The
Branch
field is color coded: red means there is an issue, green means it will merge cleanly intomaster
. If it is red, the tooltip will tell you what is wrong. If it is green, then it will link to a diff of the changes againstu/ohanar/build_system
. (This is temporary until #14480 is merged into themaster
branch.)
During the transition from mercurial to git, you may want or need to apply some patches produced by mercurial. The easiest way to do this is with sage --dev import-patch
(see the help for more details).
-
Alice has made some changes for ticket 1234, and made them available on trac by uploading a branch named
u/alice/1234
. Bob wants to review her changes, so he doesgit fetch trac u/alice/1234 git checkout FETCH_HEAD
Then Bob can test Alice's changes as much as he likes.
-
Bob has tested, and now wants to make a very minor change as a reviewer. He does
git checkout -b ticket/1234 ... (make the change) ... git commit -am 'helpful commit message' git push trac ticket/1234:u/bob/1234
Then Bob goes to the ticket page on Trac and makes some changes to tell Alice about his review, the minor change, and the branch he just uploaded:
u/bob/1234
. Alice can merge that branch with her own if she wants to use Bob's suggestions. -
Later, Alice and Bob decide to collaborate on ticket 4321, where they'll both be making substantial changes. Alice puts a branch on Trac for this at
u/alice/4321
. The Bob doesgit remote set-branches trac --add u/alice/4321 git remote update git checkout trac/u/alice/4321 -b ticket/4321
Then Bob does a bunch of work and makes a few commits to his local branch,
ticket/4321
. Alice does the same to her local branch, and pushes them up to the Trach branch she started. Bob wants to merge them in, so he doesgit remote update git merge trac/u/alice/4321
- build system modifications (except as below)
- git friendly trac server
- development scripts (found at dev_scripts)
- git backend (pending no more needed functionality)
- user interface api
- resolve #14781
- development scripts (found at http://trac.sagemath.org/ticket/14482)
- mecurial compatibility scripts
- SPKG merge script (should be really easy to write using a truncated version of the script I use to manage the git repository)
- mecurial compatibility scripts
- finish cleanup of the mercurial export script (nearly done)
- documentation
-
walk_through.rst
needs a major overhaul -
producing_spkgs.rst
andpatching_spkgs.rst
need updating- old style spkgs are deprecated
- unified repository now
- package_version.txt
- checksums.ini (
sage-fix-pkg-checksums
)
-
producing_patchs.rst
needs major overhaul -
trac.rst
probably needs updating - other smaller fixups will probably be needed throughout
-
- buildbot
- patchbot