Accounts here are very easy. Here's where to go if you need help.
Click the "register" link in the upper-right of your screen.
Click on "Sign in" in the upper right corner, then "Lost password".
Your account here on software.complete.org is valid automatically for all projects hosted here. You won't have to enter your password more than once.
You must login before you can:
Welcome. This will be fast. This guide describes how you can contribute to software projects here using the Darcs version-control system.
Darcs is a distributed VCS, so you do not need to be granted commit access in advance. You can hack, commit, and then send in your patches without permission from anyone.
If you are using Debian, you can simply
apt-get install darcs. Otherwise, you can download Darcs source or binaries for other Linux, Unix, Windows, and Mac operating systems from the Darcs homepage at http://www.darcs.net/. Instructions will vary depending on your operating system, and are posted on the Darcs site.
On Unix:
mkdir ~/.darcs echo "My Name <myemail@example.com>" > ~/.darcs/author
On Windows, this will go under a different location. You can actually omit it and put it in _darcs/prefs/author after you check out the source if you like.
You can even skip this step entirely, but you'll be annoyed because Darcs will ask who you are each time you make a commit if you skip this step.
You'll run:
darcs get --partial http://darcs.complete.org/projectname cd projectname
Replace "projectname" with the Darcs name for your project. These names will be given on the project page on this site. One example would be:
darcs get --partial http://darcs.complete.org/offlineimap cd offlineimap
The [/ Software.Complete.Org project list] and Darcs.Complete.Org project list may be of use to you.
Make your changes. After modifying a file, run:
darcs record -a
You will be asked for a patch name, which is a one-line summary of what you just did. You can, and should, also enter a longer description.
If you add a new file, you'll need to tell Darcs about it before you can use
record:
darcs add filename
If you rename a file, tell Darcs what you did:
darcs mv oldfilename newfilename
And finally, if you delete a file, Darcs will automatically detect that and send it in as part of the record.
You can leave off the
-ato record, which will cause Darcs to ask you about each potential change. The
-ameans "all", which tells record to commit all changes you've made.
Once you're done with your feature, submit it to the software manager(s) for consideration. Simply run:
darcs send -a
All version-control history, including your name, commit messages, individual changes, etc. will be e-mailed to the project submission address. Darcs automatically figures out that address from the project repository on complete.org. Darcs also can tell when/if your patches are integrated upstream, and always sends the minimum patch set necessary to bring upstream in sync with your repo.
This, of course, requires a working email setup on your system. You can use
darcs send -o filenameto write a patch bundle to a separate file, which you can then send in manually if email doesn't work for you.
If you follow a project for more than a few hours, you'll want to periodically integrate changes from the upstream repository into your local copy.
darcs pull -av
will do this.
You may also be interested in some of these.
darcs --helpwill show you a list of commands.
darcs command --helpwill show you information about each individual command.
You can, of course, use the project timeline here on the website. But for more detailed information, try a command such as:
darcs changes -s | less
You can use
-vinstead of
-sto see diffs as well.
Your history may not go all the way back to the creation of the project. If you need to do that, check it out again without using
--partialto
darcs get. The partial option tells it to download a recent checkpoint, and then play forward only the patches from there. If you leave it off, you will download every single change ever made to the project. This can take quite awhile, consume a lot of disk space, etc. So you should only do that if you really need it -- which will be rarely.
Go to the Darcs homepage. There is also a very helpful Wiki and online community on IRC.
Welcome. This will be fast. This guide describes how you can contribute to software projects here using the Git version-control system.
Git is a distributed VCS, so you do not need to be granted commit access in advance. You can hack, commit, and then send in your patches without permission from anyone.
These instructions assume you have git 1.5.1 or above.
apt-get install git-core git-email
yum install git-coreNow we'll run a few commands to teach Git about you:
git-config --global user.name "My Name" git-config --global user.email "myemail@example.com"
If you aren't on Unix, or if you're not going to use sendmail to send out mail, configure email with your SMTP server information:
git-config --global sendemail.smtpserver smtp.example.com
If your server requires you to log in, you'll also want to give:
git-config --global sendemail.smtpuser "myusername" git-config --global sendemail.smtppass "myPassWord"
You'll run:
git clone git://git.complete.org/projectname cd projectname
Replace "projectname" with the Git name for your project. These names will be given on the project page on this site. One example would be:
git clone git://git.complete.org/listlike cd listlike
The Software.Complete.Org project list and Git.Complete.Org project list may be of use to you.
If the checkout fails or hangs: you may be behind a restrictive firewall. In those cases, substitute http:// instead of git://. It'll be slower, but it'll work. In the above example, that would be: git clone http://git.complete.org/listlike
Make your changes. After modifying a file, run:
git commit -a
An editor will be opened for you to describe what you changed. By convention, the first line will be a 1-line summary, and the rest of the lines will describe your change in more detail.
If you add a new file, you'll need to tell Git about it before you can use commit:
git add filename
To rename a file, don't just use a command such as mv. Instead, use:
git mv oldfilename newfilename
And finally, if you delete a file, use git rm filename to tell Git about it.
Then git commit -a like usual.
Once you're done with your feature, submit it to the software manager(s) for consideration. Make sure you have run git commit -a. Then, simply run:
git format-patch -M -C --stdout origin > submit git send-email submit
All version-control history, including your name, commit messages, individual changes, etc. will be e-mailed. You will be prompted for the address to email to. This will usually be jgoerzen AT complete DOT org
This, of course, requires a working email setup on your system. You can alternatively attach the submit file to an email using your standard mail client, which will also work.
If you follow a project for more than a few hours, you'll want to periodically integrate changes from the upstream repository into your local copy.
git fetch git rebase origin
will do this.
You may also be interested in some of these.
git help will show you some of the commands. git command --help will show you information about each command.
You can, of course, use the project timeline here on the website. But for more detailed information, try a command such as:
git log
If you want pretty colors in your terminal, run:
git-config --global color.branch auto git-config --global color.diff auto git-config --global color.interactive auto git-config --global color.status auto git-config --global color.pager false
I wouldn't try this on Mac or Windows, where your terminals may not be capable of showing the colors properly.
Go to the Git homepage. Also check out:
h1.InterMapTxt
This page was modelled after theMeatBallInterMapTxt page.
In addition, an optional comment is allowed after the mapping.
This page is interpreted in a special way by Trac, in order to support
InterWiki links in a flexible and dynamic way.
prefix <space> URL [<space> # comment]
By using $1, $2, etc. within the URL, it is possible to create
InterWiki links which support multiple arguments, e.g. Trac:ticket:40.
The URL itself can be optionally followed by a comment,
which will subsequently be used for decorating the links
using that prefix.
New InterWiki links can be created by adding to that list, in real time.
Note however that deletions are also taken into account immediately,
so it may be better to use comments for disabling prefixes.
Also note that InterWiki prefixes are case insensitive.
PEP http://www.python.org/peps/pep-$1.html # Python Enhancement Proposal Trac-ML http://thread.gmane.org/gmane.comp.version-control.subversion.trac.general/ # Message $1 in Trac Mailing List trac-dev http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/ # Message $1 in Trac Development Mailing List Mercurial http://www.selenic.com/mercurial/wiki/index.cgi/ # the wiki for the Mercurial distributed SCM RFC http://rfc.net/rfc$1.html # IETF's RFC $1 # # A arbitrary pick ofInterWiki prefixes... # Acronym http://www.acronymfinder.com/af-query.asp?String=exact&Acronym= C2find http://c2.com/cgi/wikiFindPage&value= Cache http://www.google.com/search?q=cache: CPAN http://search.cpan.org/perldoc? DebianBug http://bugs.debian.org/ DebianPackage http://packages.debian.org/ Dictionary http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query= Google http://www.google.com/search?q= GoogleGroups http://groups.google.com/group/$1/msg/$2 # Message $2 in $1 Google Group JargonFile http://downlode.org/perl/jargon-redirect.cgi?term= MeatBall http://www.usemod.com/cgi-bin/mb.pl? MetaWiki http://sunir.org/apps/meta.pl? MetaWikiPedia http://meta.wikipedia.org/wiki/ MoinMoin http://moinmoin.wikiwikiweb.de/ WhoIs http://www.whois.sc/ Why http://clublet.com/c/c/why? c2Wiki http://c2.com/cgi/wiki? WikiPedia http://en.wikipedia.org/wiki/
h1.InterTrac Links
Trac supports a convenient way to refer to resources of other Trac servers, from within the Wiki markup, since version 0.10.
AnInterTrac link can be seen as a scopedTracLinks.
It is used for referring to a Trac resource
(Wiki page, changeset, ticket, ...) located in another
Trac environment.
Simply use the name of the other Trac environment as a prefix,
followed by a colon, ending with the resource located in the other environment.
<target_environment>:TracLinks>
The other resource is specified using a regularTracLinks, of any flavor.
That target environment name is either the real name of the
environment, or an alias for it.
The aliases are defined in trac.ini (see below).
The prefix is case insensitive.
For convenience, there's also some alternative short-hand form,
where one can use an alias as an immediate prefix
for the identifier of a ticket, changeset or report:
(e.g. #T234, [T1508], [trac 1508], ...)
#!comment Besides the other environments run by the same server process (called _sibling_ environments), which are automatically detected, Support for sibling environments has been disabled. See http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/157
It is necessary to setup a configuration for theInterTrac facility.
This configuration has to be done in theTracIni file, [intertrac] section.
... [intertrac] # -- Example of setting up an alias: t = trac # -- Link to an external Trac: trac.title = Edgewall's Trac for Trac trac.url = http://projects.edgewall.com/trac trac.compat = false
The .url is mandatory and is used for locating the other Trac.
This can be a relative URL in case that Trac environment is located
on the same server.
The .title information will be used for providing an useful tooltip
when moving the cursor over anInterTrac links.
.compat option can be used to activate or disabletrue by default. trac:ticket:234 trac:ticket:234trac:#234 trac:#234 #T234 #T234trac:changeset:1912 trac:changeset:1912[T1912] [T1912]trac.compat=false)
trac:log:@3300:3330 trac:log:@3300:3330 [trac 3300:3330] [trac 3300:3330]The generic form intertrac_prefix:module:id is translated
to the corresponding URL <remote>/module/id, shorthand links
are specific to some modules (e.g. !#T234 is processed by the
ticket module) and for the rest (intertrac_prefix:something),
we rely on theTracSearch#quickjump facility of the remote Trac.
I think that the trac prefix could even be set as a default in the [intertrac]TracIni section. --CB
----
See also:TracLinks,InterWiki
(since [milestone:0.10])
AnInterWiki link can be used for referring to a Wiki page
located in another Wiki system, and by extension, to any object
located in any other Web application, provided a simple URL
mapping can be done.
At the extreme,InterWiki prefixes can even be used to simply introduce
links to new protocols, such as tsvn: used byTortoiseSvn.
<target_wiki>(:<identifier>)+
The link is composed by the targeted Wiki (or system) name,
followed by a colon (e.g. MeatBall:@),
followed by a page specification in the target.
Note that, as forInterTrac prefixes, _InterWiki prefixes are case insensitive*.
The target Wiki URL is looked up in theInterMapTxt wiki page,
modelled afterMeatBallInterMapTxt.
In addition to traditionalInterWiki links, where the target
is simply appended to the URL,
Trac supports parametricInterWiki URLs:
identifiers $1, $2, ... in the URL
will be replaced by corresponding arguments.
The argument list is formed by splitting the page identifier
using the ":" separator.
If the following is an excerpt of theInterMapTxt page:
h1.InterMapTxt = This is the place for definingInterWiki prefixes == Currently active prefixes: [InterWiki]] This page is modelled after theMeatBallInterMapTxt page. In addition, an optional comment is allowed after the mapping. ---- <pre> PEP http://www.python.org/peps/pep-$1.html # Python Enhancement Proposal $1 Trac-ML http://thread.gmane.org/gmane.comp.version-control.subversion.trac.general/$1 # Message $1 in Trac Mailing List tsvn tsvn: # Interact withTortoiseSvn ... MeatBall http://www.usemod.com/cgi-bin/mb.pl? MetaWiki http://sunir.org/apps/meta.pl? MetaWikiPedia http://meta.wikipedia.org/wiki/ MoinMoin http://moinmoin.wikiwikiweb.de/ ... </pre>Then,
Trac-ML:4346 should be rendered as Trac-ML:4346----
See also:InterTrac,InterMapTxt
Welcome. This will be fast. This guide describes how you can contribute to software projects here using the Mercurial version-control system.
Darcs is a distributed VCS, so you do not need to be granted commit access in advance. You can hack, commit, and then send in your patches without permission from anyone.
If you are using Debian, you can simply
apt-get install mercurial. Otherwise, you can download Mercurial source or binaries for other Linux, Unix, Windows, and Mac operating systems from the Mercurial homepage at http://www.selenic.com/mercurial/. Instructions will vary depending on your operating system, and are posted on the Mercurial site.
On Unix, you'll edit the file ~/.hgrc. On Windows, you'll edit a similar file, but it may be located elsewhere. You'll add lines like this to it:
[ui] username = My Name <myemail@example.com> [email] from = myemail@example.com method = /usr/sbin/sendmail
If you aren't on Unix, or if you're not going to use sendmail to send out mail, set up the email section like this instead of the above example:
[email] from = myemail@example.com method = smtp [smtp] host = somehost.example.com port = 25 tls = False username = myuser password = mypass
You can omit all settings in the smtp section except the host if they are not relevant to you.
If you are using a recent version of Mercurial, you will also need to add the following, to enable the
email extension:
[extensions] patchbomb =
(sic)
You'll run:
hg clone http://hg.complete.org/projectname cd projectname
Replace "projectname" with the Mercurial name for your project. These names will be given on the project page on this site. One example would be:
hg clone http://hg.complete.org/listlike cd listlike
The [/ Software.Complete.Org project list] and Hg.Complete.Org project list may be of use to you.
Make your changes. After modifying a file, run:
hg commit
An editor will be opened for you to describe what you changed. By convention, the first line will be a 1-line summary, and the rest of the lines will describe your change in more detail.
If you add a new file, you'll need to tell Mercurial about it before you can use
commit:
hg add filename
To rename a file, don't just use a command such as
mv. Instead, use:
hg mv oldfilename newfilename
And finally, if you delete a file, use
hg rm filenameto tell Mercurial about it.
Once you're done with your feature, submit it to the software manager(s) for consideration. Simply run:
hg email -go
All version-control history, including your name, commit messages, individual changes, etc. will be e-mailed. You will be prompted for the address to email to.
This, of course, requires a working email setup on your system. You can use
hg bundle filenameto write a patch bundle to a separate file, which you can then send in manually if
hg emaildoesn't work for you.
If you follow a project for more than a few hours, you'll want to periodically integrate changes from the upstream repository into your local copy.
hg pull -u
will do this.
If you need to merge changes, Mercurial will tell you and you can use
hg mergeto do so.
You may also be interested in some of these.
hg --helpwill show you a list of commands.
hg command --helpwill show you information about each individual command.
You can, of course, use the project timeline here on the website. But for more detailed information, try a command such as:
hg log -v | less
Go to the Mercurial homepage. There is also a very helpful Wiki and online community on IRC.
To report a bug, you must simply:
Note: the New Issue button will not be visible if you aren't logged in.
Please DO NOT submit tickets here on site -- submit them to the specific project!
Also, bugs are NOT the appropriate place to get support. Use mailing lists or forums for that.
This is just a page to practice and learnWikiFormatting.
Go ahead, edit it freely.
When you browse the repository, it's always possible to query the
Revision Log view corresponding to the path you're currently seeing.
This will display a list of the most recent changesets in which the
current path or any other path below it has been modified.
It's possible to set the revision at which the revision log should
start, using the View log starting at field. An empty value
or a value of head is taken to be the newest changeset.
It's also possible to specify the revision at which the log should
stop, using the back to field. By default, it's left empty,
which means the revision log will stop as soon as 100 revisions have
been listed.
Also, there are three modes of operation of the revision log.
By default, the revision log stops on copy, which means that
whenever an Add, Copy or Rename operation is detected,
no older revision will be shown. That's very convenient when working
with branches, as one only sees the history corresponding to what
has been done on the branch.
It's also possible to indicate that one wants to see what happened
before a Copy or Rename change, by selecting the
Follow copies mode. This will cross all copies or renames changes.
Each time the name of the path changes, there will be an additional
indentation level. That way, the changes on the different paths
are easily grouped together visually.
It's even possible to go past an Add change, in order to see
if there has been a Delete change on that path, before
that Add. This mode corresponds to the mode called
Show only adds, moves and deletes.
While quite useful at times, be aware that this operation is quite
resource intensive.
Finally, there's also a checkbox Show full log messages,
which controls whether the full content of the commit log message
should be displayed for each change, or only a shortened version of it.
For each revision log entry, there are 7 columns shown:
1. The first column contains a pair of radio buttons and should used
for selecting the old and the new revisions that will be
used for [TracRevisionLog#viewingtheactualchanges]].
2. A color code (similar to the one used for the [TracChangesetChangesetHeader]])
indicating kind of change.
Clicking on this column refreshes the revision log so that it restarts
with this change.
3. The Date at which the change was made.
4. The Revision number, displayed as @xyz.
This is a link to theTracBrowser, using that revision as the base line.
5. The Changeset number, displayed as [xyz].
This is a link to theTracChangeset view.
6. The Author of the change.
7. The Log Message, which contains either a summary or the full commit
log message, depending on the value of the Show full log messages
checkbox in the form above.
The View changes... buttons (placed above and below the list
of changes, on the left side) will show the set of differences
corresponding to the aggregated changes starting from the old
revision (first radio-button) to the new revision (second
radio-button), in theTracChangeset view.
Note that the old revision doesn't need to be actually
older than the new revision: it simply gives a base
for the diff. It's therefore entirely possible to easily
generate a reverse diff, for reverting what has been done
in the given range of revisions.
Finally, if the two revisions are identical, the corresponding
changeset will be shown (same effect as clicking on column 5).
At the bottom of the page, there's a 'ChangeLog_ link
that will show the range of revisions as currently shown,
but as a simple text, matching the usual conventions for
ChangeLog files.
The revision log also provides a RSS feed to monitor the changes.
To subscribe to a RSS feed for a file or directory, open its
revision log in the browser and click the orange 'XML' icon at the bottom
of the page. For more information on RSS support in Trac, seeTracRss.
----
See also:TracBrowser,TracChangeset,TracGuide
The ads are here because it costs me money to host complete.org. About $600 each year, in fact.
The ads don't pay for that; in fact, they don't even come close. But they do help, and that's important to help me save money.
I know ads can be annoying, but these are Google ads, so hopefully they shouldn't be too bad.
Very simple:
This site contains information for many projects, most hosted in Git, most managed by John Goerzen.