= Trac Repositories == Official Subversion repository Everyone has read access to the Trac Subversion repository located at: https://svn.edgewall.org/repos/trac/ In addition, see TracDev/SubmittingPatches for instructions on how to create and submit patches. Example: {{{ $ svn checkout https://svn.edgewall.org/repos/trac/trunk $ cd trunk $ emacs $ svn diff > my_great_patch.diff }}} Please attach patches to the appropriate ticket for review and merging. Trac developers who have write permissions on this repository should use HTTPS for the checkout, i.e. https://svn.edgewall.org/repos/trac/. To become a Trac developer, [HowToContribute start to contribute], play well with the other team members and participate to [MailingList#Trac-dev Trac-dev]. == Official mirrors #OfficialMirrors We now have official DVCS mirrors of the Subversion trunk and maintenance branches which are updated after every commit. For anything other than small fixes, it is more convenient to maintain your changes in your own repositories. That way, it will be easier to maintain them as the code base continues to evolve upstream (rebase, MQ, etc.). === Mercurial mirror on bitbucket.org https://bitbucket.org/edgewall/trac You can register for a BitBucket account and then "Fork" the above repository, which will create your own `trac` repository under your account. Alternatively, you can directly clone the edgewall/trac repository and submit your changes via patches attached to the relevant tickets. {{{ hg clone https://bitbucket.org/edgewall/trac }}} The mirror contains `trunk`, all `0.x-stable` branches since Trac 0.7 as well as the corresponding tags. To facilitate linking the Mercurial changesets with the corresponding changesets in Subversion, you may want to install the [https://bitbucket.org/rblank/hgsvnutils/src HgSvnUtils] Mercurial extension (maintained by RemyBlank). It automatically adds "virtual" tags for every changeset converted from Subversion, containing the SVN revision number: {{{ $ hg glog o 6997[svn-9975,tip]:6995 20725063f3e2 2010-07-31 14:38 +0000 rblank | Merged [9974] from 0.12-stable. | | o 6996[svn-9974]:6994 3b48c6d5a06b 2010-07-31 14:37 +0000 rblank | | 0.12.1dev: Follow-up to [9971], fixed the display of the default repository description. | | o | 6995[svn-9973]:6988 fd102216a0af 2010-07-31 14:32 +0000 rblank | | Merged [9964:9972] from 0.12-stable. | | | o 6994[svn-9972] 39f0644d4995 2010-07-31 14:21 +0000 rblank | | 0.12.1dev: Fixed the dynamic expansion of directories in the repository browser on IE7. | | | o 6993[svn-9971] 2d8e405eb5e8 2010-07-31 11:31 +0000 rblank | | 0.12-stable: Fixed the display of the description of named repositories when showing the repository root. | | }}} This allows easy updating to a given SVN revision, or a comparison to a given SVN revision: {{{ $ hg up svn-9974 9 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg di -r svn-9972 diff --git a/trac/versioncontrol/web_ui/browser.py b/trac/versioncontrol/web_ui/browser.py --- a/trac/versioncontrol/web_ui/browser.py +++ b/trac/versioncontrol/web_ui/browser.py @@ -398,7 +398,7 @@ data = { 'context': context, 'reponame': reponame, 'repos': repos, - 'repoinfo': all_repositories.get(reponame), + 'repoinfo': all_repositories.get(reponame or ''), 'path': path, 'rev': node and node.rev, 'stickyrev': rev, 'display_rev': display_rev, 'created_path': node and node.created_path, }}} Note that when working with mixed working copies on Windows (i.e. a Subversion working copy which also contains a cloned `.hg` repository at its root), it can be useful to activate the `eol` Mercurial extension (see r9979 for details). Otherwise, after an `svn update`, the files can appear to be modified to `hg` due to different line endings. This is because the Mercurial mirror has been created on Linux, therefore all the files are stored in LF mode in the repository. === Git mirror on github.com https://github.com/edgewall/trac You can either register for a GitHub account and then "Fork" the above repository, which will create your own `trac` repository under your account. Alternatively, you can directly clone the edgewall/trac repository and submit your changes via patches attached to the relevant tickets. {{{ git clone https://github.com/edgewall/trac.git }}} == Local repositories for Trac developers See TracTeam/Repositories. ---- See also: HowToContribute, TracDev, TracProject