http://opensimulator.org/api.php?action=feedcontributions&user=Mathy2h&feedformat=atomOpenSimulator - User contributions [en]2024-03-29T13:31:18ZUser contributionsMediaWiki 1.19.9http://opensimulator.org/wiki/Main_PageMain Page2011-04-23T09:22:13Z<p>Mathy2h: /* What is OpenSimulator? */</p>
<hr />
<div>__NOTOC__<br />
{{MainPageQuicklinks}}<br />
<!--<br />
Please use the Information Template to announce new things, the other languages are added as well<br />
--><br />
{{Information}}<br />
=== What is OpenSimulator? ===<br />
<br />
{{Template:FrontPageSidebar}} //<br />
<br />
OpenSimulator is an open source multi-platform, multi-user 3D application server. It can be used to create a virtual environment (or world) which can be accessed through a variety of clients, on multiple protocols. OpenSimulator allows virtual world developers to customize their worlds using the technologies they feel work best - we've designed the framework to be easily extensible. OpenSimulator is written in C#, running both on Windows over the .NET framework and on *ix machines over the [http://www.mono-project.com/ Mono] framework. The source code is released under a [[BSD License]], a commercially friendly license to embed OpenSimulator in products. <br />
<br />
Out of the box, OpenSimulator can be used to simulate virtual environments similar to Second Lifeā¢, given that it supports the core of [http://wiki.secondlife.com/wiki/Protocol SL's messaging protocol]. As such, these virtual worlds can be accessed with the regular [http://wiki.secondlife.com/wiki/Alternate_viewers SL viewers]. However, OpenSimulator is neither a clone of Second Life's server nor does it aim at becoming such a clone. On the contrary, OpenSimulator lacks support for many of the game-specific features of Second Life (on purpose), while pursuing innovative directions towards becoming the bare bones, but extensible, server of the 3D Web...... <br />
<br />
OpenSimulator is getting more stable as it approaches release 1.0, but we still consider it alpha software; so should you.<br />
<br />
=== Features ===<br />
<br />
* Supports online, multi-user 3D environments as small as 1 simulator or as large as thousands of simulators.<br />
* Supports 3D virtual spaces of variable size within one single instance.<br />
* Supports multiple clients and protocols - access the same world at the same time via multiple protocols.<br />
* Supports realtime Physics Simulation, with multiple engine options including ODE.<br />
* Supports clients that create 3D content in real time. <br />
* Supports inworld scripting using a number of different languages, including LSL/OSSL, C# and VB.NET<br />
* Provides unlimited ability to customize virtual world applications through the use of [[IRegionModule|scene plugin modules]].<br />
<br />
For a more extensive list, see the [[Feature Matrix]].<br />
<br />
=== Running an OpenSimulator-Based World ===<br />
<br />
*[[Download|Getting OpenSimulator]] <br />
*[[Build Instructions|Building OpenSimulator]] <br />
*[[Configuration|Configuring and Running OpenSimulator]] <br />
*[[Console Commands]] <br />
*[[FAQ|Frequently Asked Questions in Running OpenSimulator]] <br />
*[[Technical Reference|Technical Reference Pages]]<br />
<br />
=== Participating in the OpenSimulator Community ===<br />
OpenSimulator is an [http://en.wikipedia.org/wiki/Open_source open source] project, and is powered by the community members that devote time and energy to the effort. There are many ways to participate and contribute to the community:<br />
* Participate via [http://en.wikipedia.org/wiki/Internet_Relay_Chat IRC] - [irc://irc.freenode.net/opensim #opensim] (for users), [irc://irc.freenode.net/opensim-dev #opensim-dev] (for developers) and [irc://irc.freenode.net/opensim-scripts #opensim-scripts] <br />
* Participate via the mailing lists - [https://lists.berlios.de/mailman/listinfo/opensim-users opensim-users] (for users) and [https://lists.berlios.de/mailman/listinfo/opensim-dev opensim-dev] (for developers).<br />
* [[WikiStructure|Contribute to this wiki]], making the OpenSimulator documentation even better.<br />
* Report [[bugs]], submit [[Submitting_code_to_OpenSim|patches]] or submit content contributions via our [http://opensimulator.org/mantis/ mantis bug tracker]<br />
* Create an OpenSimulator related project hosted on the [http://forge.opensimulator.org Forge] or [http://opensimulator.org/wiki/Related_Software elsewhere] on the web. In the forge there are over a dozen registered projects, and it's a great way to further extend the OpenSimulator community.<br />
* Participate to open content creation for OpenSimulator. More details at [[Artist Home]].<br />
* Blog about OpenSimulator, and let us know about that blog on [irc://irc.freenode.net/opensim #opensim] so it can be added to [http://planet.opensim.us Planet OpenSim]<br />
* Participate in one of the weekly [[Office Hours]] for OpenSimulator. We currently have weekly office hours for development, wiki work, and testing.<br />
<br />
{{Layout_box2|1=<br />
===Pages by Category:===<br />
'''[[:Category:Getting_Started | Getting Started]] , [[:Category:Support | Support]] , [[:Category:Tech Reference|Technical Reference Pages]] , [[:Category:Help|Help]] , [[:Category:Configuration|Configuration Pages]] , [[:Category:Users|User's Pages]] , [[:Category:Development | Development Pages]] , [[:Category:Scripts|Scripts]] , [[Special:Recentchanges| Recent Wiki Changes]]'''<br /><br />
}}<br />
<br />
[[Category:Main]]<br />
[[Category:Getting Started]]<br />
[[Category:Development]]<br />
[[Category:Support]]<br />
[[Category:Help]]<br />
[[Category:Configuration]]<br />
<cleanpage title=hide cats=hide /></div>Mathy2hhttp://opensimulator.org/wiki/Using_GitUsing Git2011-04-23T09:11:39Z<p>Mathy2h: </p>
<hr />
<div>This is an introduction to using git for OpenSim.<br />
<br />
= Installing Git =<br />
<br />
== Linux ==<br />
<br />
=== CLI ===<br />
:Git is provided as a package with all modern Linux distributions. Install the following packages depending on environment:<br />
::* Debian, Ubuntu: <pre>apt-get install git-core</pre><br />
::* Centos: see the instructions at http://www.how-to-linux.com/2009/01/install-git-161-on-centos-52/<br />
<br />
=== GUIs ===<br />
:[http://www.kernel.org/pub/software/scm/git/docs/git-gui.html git-gui]<br />
::* Debian, Ubuntu:<br />
$ sudo apt-get install git-gui<br />
$ git gui<br />
<br />
:[http://cola.tuxfamily.org/ git-cola]<br />
::* Debian, Ubuntu:<br />
$ apt-get install git-cola<br />
$ git-cola<br />
<br />
== Windows ==<br />
<br />
On Windows you need to install 2 packages:<br />
* [http://code.google.com/p/msysgit/ msysgit] - the basic git port for windows. Install this first. <br />
* [http://code.google.com/p/tortoisegit/ Tortoise Git] - the git explorer. Install this second.<br />
<br />
When '''installing msysgit''' be sure to choose<br />
'''Unix style line endings'''. This will make it so that all the line endings are managed correctly, which will prevent merge issues in the future.<br />
<br />
[[Image:msysgit1.png]] [[Image:msysgit2.png]] [[Image:msysgit3.png]] [[Image:msysgit4.png]] [[Image:msysgit5.png]]<br />
<br />
== Mac OS X ==<br />
<br />
If you have [http://www.macports.org/ MacPorts] installed, then open a Terminal window and run:<br />
<br />
sudo port install git-core<br />
<br />
= Configuring Git =<br />
<br />
Git has both a global config and a local config for each repo. As one might expect, local trumps global. The first important thing to do is set your name and email address, as that will be used in your commits.<br />
<br />
On Linux / Mac OS X this is done via:<br />
<br />
git config user.email YOUR@EMAIL.ADDR<br />
git config user.name "Your Name"<br />
<br />
On Windows this done with the config menu.<br />
<br />
[[Image:Config1.png]]&nbsp;[[Image:Config2.png]]<br />
<br />
To setup your Context Menu to make your options easier, select the Context Menu options as shown above and choose what you want to have displayed immediately.<br />
<br />
<br><br />
<br />
[[Image:Config3.png]]<br />
<br />
= Git Repositories for OpenSim =<br />
<br />
The urls for the repositories are as follows:<br />
<br />
{| border="1" cellpadding="5"<br />
! Repository !! Developer URL !! Anon URL<br />
|-<br />
|| opensim (main repository) || ssh://opensimulator.org/var/git/opensim || git://opensimulator.org/git/opensim<br />
|}<br />
<br />
== Cloning the Repositry (for Core Developers) ==<br />
<br />
If you are a core developer, use the developer url above. If you aren't a core developer, use the anon url above. The initial clone will take a few minutes, as it is pulling the entire change history. Don't be concerned about space, all the change history stored in git takes up less space than a single checked out copy of opensim. Welcome to the wonderful world of content addressable storage.<br />
<br />
Unlike with svn, you can define multiple sources to pull from. So if you initially start with an anon tree (which is read only), you can still later define the core tree (or some other remote target on github) and push to that.<br />
<br />
=== Linux / Mac OS X ===<br />
Run the following on the command line:<br />
<br />
git clone ssh://opensimulator.org/var/git/opensim<br />
<br />
This will create an opensim-test directory locally<br />
<br />
=== Windows ===<br />
<br />
Right click on the Desktop (or wherever) and 'Git Clone...'<br />
<br />
When prompted for a url provide ssh://opensimulator.org/var/git/opensim. You username and password will be the ones used for opensimulator.org.<br />
<br />
== Cloning the Repositry (for Non Core Developers) ==<br />
<br />
git clone git://opensimulator.org/git/opensim<br />
<br />
This is the equivalent of anonymous svn access.<br />
<br />
== Resolving git hash &amp; revision numbers ==<br />
<br />
These generate the bin/.version file which is used to identify the Git-Hash Revision.&nbsp; The GIT Hash is used to track the builds for troubleshooting and for filling Mantis Reports.&nbsp; Without proper Version Identification developers / contributors cannot locate &amp;&nbsp;address problems within the source code, resulting in un-usable Mantis reports.&nbsp; Please Version your Builds to help everyone make a better OpenSimulator.<br />
<br />
[[Show git version numbers - Windows|Windows batchfile]] <br />
<br />
[[Show git version numbers - Linux|Linux bash script]] <br />
<br />
NOTE:&nbsp; Older installation of GIT&nbsp;such as 1.6.0.4 do not support the extra functions.&nbsp; To make use of the above scripts it is recomended you update your GIT&nbsp;installation to the most current revisions.&nbsp; They are available from [http://git-scm.com/ git-scm.com/]<br />
<br />
= Conceptual Changes from Subversion =<br />
<br />
Distributed source code control is a substantially different mental model than centralized source code control. If it freaks you out a bit, don't worry, everyone has that same reaction initially. This [http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ blog post] is the best explanation that I've seen of the concepts involved.<br />
<br />
For heavy users of subversion you should read the [http://git.or.cz/course/svn.html git / svn cheat sheet]. This provides a very solid basis for making your changes. That being said there are some conceptual changes to note.<br />
<br />
* Terminology<br />
** master is the name of the primary upstream branch (in subversion terms, this is trunk)<br />
** origin is the name and location of the tree you cloned from<br />
* All repositories are full peers to all other repositories. Your cloned git repo is all the history of the entire project, available locally. It means you can sync between any 2 clones of the repository, not just between your clone and the master repo. This lets people work together on changes not in<br />
* Version numbers are SHA1 hashes, not sequential integers. This means referring to specific revisions is a bit more interesting. For most of the git commands, you only need to give it the first 6-8 digits of the hash for them to work.<br />
* Committing<br />
** commits are local. This means they are fast (no network involved) and they are committed against the last state of the tree. Any conflict resolution will be handled after commits, during your next pull. This is slightly different than pull-resolve-then-commit model of subversion.<br />
** by default only files you explicitly '''git add''' are put into the commit. To get '''svn ci''' equivalency use '''git commit -a''' to commit all outstanding files (I think tortoise handles this for you)<br />
** after making a commit you must then '''push''' it to a remote repository (probably origin). By default you push only branches you have previously pushed, typically master.<br />
<br />
The biggest real change is the Subversion dictates a very specific workflow. Git does not. Git allows for many different workflows, and lets each developer use the one that is best suited to his/her self.<br />
<br />
= Using Git like Subversion/trunk development =<br />
<br />
This is a set of quick instructions to use git like we do subversion development today. It is targetted for core developers (so assumes you are using the ssh access), though most of it will work for non developers by just changing a url.<br />
<br />
This is done by giving the unix commands. These options should all be available in the context menu on tortoise git as well.<br />
<br />
== Getting the source code ==<br />
<br />
'''git clone ssh://opensimulator.org/git/opensim-test'''<br />
<br />
This is the equivalent of '''svn co'''<br />
<br />
'''Note:''' all other operations assume that you are in the git directory.<br />
<br />
== Updating your checkout ==<br />
<br />
'''git pull'''<br />
<br />
This is the equivalent of '''svn update'''<br />
<br />
== Inspecting what has changed in your working tree ==<br />
<br />
'''git status'''<br />
<br />
This is the equivalent of '''svn status'''<br />
<br />
== Committing a change ==<br />
<br />
either:<br />
<br />
'''git add file1 file2 ...'''<br />
<br />
'''git commit'''<br />
<br />
or<br />
<br />
'''git commit -a'''<br />
<br />
by default git does not add all files during a commit.<br />
<br />
== Pushing the committed change ==<br />
<br />
The first time you do this you'll need to specify which branch to push.<br />
<br />
'''git push origin master'''<br />
<br />
After the first time a simple '''git push''' will be enough, as it defaults to origin, and now git knows that master should by synced to origin.<br />
<br />
'''Important:''' commits in git are local. They are not included in the main tree '''until you push''' them. This means you can create commits when you are not on the network and sync afterwards.<br />
<br />
== Setting the checkout dir to a specific revision ==<br />
<br />
'''git reset --hard #HASHVALUE'''<br />
<br />
This will effectively rewind the tree to the specific revision, and modify the checkout dir accordingly. This is equiv to '''svn up -R#version'''.<br />
<br />
git reset can also be useful if you screwed up commits and want to get rid of them<br />
<br />
== Resetting the tree to master (i.e. trunk) ==<br />
<br />
'''git pull'''<br />
<br />
per previous<br />
<br />
== Creating a Patch ==<br />
<br />
'''git format-patch #HASHVALUE'''<br />
<br />
This will create a patch suitable for attaching or emailing from a single commit. You can also specify a range of commits.<br />
<br />
This is closest to '''svn diff > patchfile.txt''' for uncommitted changes in subversion.<br />
<br />
== Applying a Git Patch ==<br />
<br />
If someone has formatted a git patch you can apply it directly (including all file adds, file mode changes, and their change log entry) with:<br />
<br />
'''git apply patchfile.patch'''<br />
<br />
== Reverting a Change ==<br />
<br />
'''git revert #HASHVALUE'''<br />
<br />
This directly reverts the change, with a commit message stating that fact. There is no svn direct equiv, though this is often accomplished through: svn diff -R revisions > revert.patch && patch -p0 < revert.patch && svn ci -m "reverting revisions"<br />
<br />
== Resetting part of the tree to master ==<br />
<br />
'''git checkout -- file1 file2 ...'''<br />
<br />
Checkout is an operation that populates the working directory from the git repository. Doing a git checkout (master is the implied branch) -- file1 file2 repulls those files from the git repo, clobbering them in your local directory. This is like '''svn revert'''.<br />
<br />
== Diffing Changes ==<br />
<br />
Against your most recently committed changes<br />
<br />
'''git diff'''<br />
<br />
From your most recent changes to a past change<br />
<br />
'''git diff #HASHVALUE'''<br />
<br />
Between any 2 changes<br />
<br />
'''git diff #HASHVALUE1 #HASHVALUE1'''<br />
<br />
== Branches ==<br />
<br />
=== Creating a Branch ===<br />
<br />
To create a new branch based on the current one, do:<br />
<br />
'''git branch &lt;branchname&gt;'''<br />
<br />
=== Changing Branches ===<br />
<br />
To change between branches do:<br />
<br />
'''git checkout &lt;branchname&gt;'''<br />
<br />
=== Tracking a Branch ===<br />
<br />
If you want to work on a specific branch, you can track it, by creating a local version of it on which you can pull and push. If you have already pulled (or fetched) from origin, you should have all remote branches names:<br />
<br />
'''git branch -a'''<br />
<br />
Will show all branches, local and remote. Choose a remote branch to track then do:<br />
<br />
'''git branch --track &lt;localbranchname&gt; remotes/origin/&lt;remotebranchname&gt;'''<br />
<br />
A new local branch will be created, which will push and pull to the specific remote branch.<br />
<br />
== Resources &amp; References ==<br />
<br />
Git - SVN Crash Course at [http://git-scm.com/course/svn.html git-scm.com/course/svn.html] <br />
<br />
Git for the lazy tutorial at [http://www.spheredev.org/wiki/Git_for_the_lazy www.spheredev.org/wiki/Git_for_the_lazy] <br />
<br />
Git Video Tutorials at&nbsp; [http://gitcasts.com/ http://gitcasts.com/]&nbsp;&nbsp; (Several Excellent Video Tutorials)<br />
<br />
The Git Community Book at [http://book.git-scm.com/ http://book.git-scm.com/]<br />
<br />
The git-svn(1) Manual Page [http://www.kernel.org/pub/software/scm/git/docs/v1.6.3.3/git-svn.html] (git-svn = Bidirectional operation between a single Subversion branch and git)<br />
<br />
The Git-Svn Cheat Sheet [http://cheat.errtheblog.com/s/gitsvn/]</div>Mathy2hhttp://opensimulator.org/wiki/Using_GitUsing Git2011-04-23T09:10:42Z<p>Mathy2h: </p>
<hr />
<div>This is an introduction to using git for OpenSim.<br />
= =<br />
= =<br />
= Installing Git =<br />
<br />
== Linux ==<br />
<br />
=== CLI ===<br />
:Git is provided as a package with all modern Linux distributions. Install the following packages depending on environment:<br />
::* Debian, Ubuntu: <pre>apt-get install git-core</pre><br />
::* Centos: see the instructions at http://www.how-to-linux.com/2009/01/install-git-161-on-centos-52/<br />
<br />
=== GUIs ===<br />
:[http://www.kernel.org/pub/software/scm/git/docs/git-gui.html git-gui]<br />
::* Debian, Ubuntu:<br />
$ sudo apt-get install git-gui<br />
$ git gui<br />
<br />
:[http://cola.tuxfamily.org/ git-cola]<br />
::* Debian, Ubuntu:<br />
$ apt-get install git-cola<br />
$ git-cola<br />
<br />
== Windows ==<br />
<br />
On Windows you need to install 2 packages:<br />
* [http://code.google.com/p/msysgit/ msysgit] - the basic git port for windows. Install this first. <br />
* [http://code.google.com/p/tortoisegit/ Tortoise Git] - the git explorer. Install this second.<br />
<br />
When '''installing msysgit''' be sure to choose<br />
'''Unix style line endings'''. This will make it so that all the line endings are managed correctly, which will prevent merge issues in the future.<br />
<br />
[[Image:msysgit1.png]] [[Image:msysgit2.png]] [[Image:msysgit3.png]] [[Image:msysgit4.png]] [[Image:msysgit5.png]]<br />
<br />
== Mac OS X ==<br />
<br />
If you have [http://www.macports.org/ MacPorts] installed, then open a Terminal window and run:<br />
<br />
sudo port install git-core<br />
<br />
= Configuring Git =<br />
<br />
Git has both a global config and a local config for each repo. As one might expect, local trumps global. The first important thing to do is set your name and email address, as that will be used in your commits.<br />
<br />
On Linux / Mac OS X this is done via:<br />
<br />
git config user.email YOUR@EMAIL.ADDR<br />
git config user.name "Your Name"<br />
<br />
On Windows this done with the config menu.<br />
<br />
[[Image:Config1.png]]&nbsp;[[Image:Config2.png]]<br />
<br />
To setup your Context Menu to make your options easier, select the Context Menu options as shown above and choose what you want to have displayed immediately.<br />
<br />
<br><br />
<br />
[[Image:Config3.png]]<br />
<br />
= Git Repositories for OpenSim =<br />
<br />
The urls for the repositories are as follows:<br />
<br />
{| border="1" cellpadding="5"<br />
! Repository !! Developer URL !! Anon URL<br />
|-<br />
|| opensim (main repository) || ssh://opensimulator.org/var/git/opensim || git://opensimulator.org/git/opensim<br />
|}<br />
<br />
== Cloning the Repositry (for Core Developers) ==<br />
<br />
If you are a core developer, use the developer url above. If you aren't a core developer, use the anon url above. The initial clone will take a few minutes, as it is pulling the entire change history. Don't be concerned about space, all the change history stored in git takes up less space than a single checked out copy of opensim. Welcome to the wonderful world of content addressable storage.<br />
<br />
Unlike with svn, you can define multiple sources to pull from. So if you initially start with an anon tree (which is read only), you can still later define the core tree (or some other remote target on github) and push to that.<br />
<br />
=== Linux / Mac OS X ===<br />
Run the following on the command line:<br />
<br />
git clone ssh://opensimulator.org/var/git/opensim<br />
<br />
This will create an opensim-test directory locally<br />
<br />
=== Windows ===<br />
<br />
Right click on the Desktop (or wherever) and 'Git Clone...'<br />
<br />
When prompted for a url provide ssh://opensimulator.org/var/git/opensim. You username and password will be the ones used for opensimulator.org.<br />
<br />
== Cloning the Repositry (for Non Core Developers) ==<br />
<br />
git clone git://opensimulator.org/git/opensim<br />
<br />
This is the equivalent of anonymous svn access.<br />
<br />
== Resolving git hash &amp; revision numbers ==<br />
<br />
These generate the bin/.version file which is used to identify the Git-Hash Revision.&nbsp; The GIT Hash is used to track the builds for troubleshooting and for filling Mantis Reports.&nbsp; Without proper Version Identification developers / contributors cannot locate &amp;&nbsp;address problems within the source code, resulting in un-usable Mantis reports.&nbsp; Please Version your Builds to help everyone make a better OpenSimulator.<br />
<br />
[[Show git version numbers - Windows|Windows batchfile]] <br />
<br />
[[Show git version numbers - Linux|Linux bash script]] <br />
<br />
NOTE:&nbsp; Older installation of GIT&nbsp;such as 1.6.0.4 do not support the extra functions.&nbsp; To make use of the above scripts it is recomended you update your GIT&nbsp;installation to the most current revisions.&nbsp; They are available from [http://git-scm.com/ git-scm.com/]<br />
<br />
= Conceptual Changes from Subversion =<br />
<br />
Distributed source code control is a substantially different mental model than centralized source code control. If it freaks you out a bit, don't worry, everyone has that same reaction initially. This [http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ blog post] is the best explanation that I've seen of the concepts involved.<br />
<br />
For heavy users of subversion you should read the [http://git.or.cz/course/svn.html git / svn cheat sheet]. This provides a very solid basis for making your changes. That being said there are some conceptual changes to note.<br />
<br />
* Terminology<br />
** master is the name of the primary upstream branch (in subversion terms, this is trunk)<br />
** origin is the name and location of the tree you cloned from<br />
* All repositories are full peers to all other repositories. Your cloned git repo is all the history of the entire project, available locally. It means you can sync between any 2 clones of the repository, not just between your clone and the master repo. This lets people work together on changes not in<br />
* Version numbers are SHA1 hashes, not sequential integers. This means referring to specific revisions is a bit more interesting. For most of the git commands, you only need to give it the first 6-8 digits of the hash for them to work.<br />
* Committing<br />
** commits are local. This means they are fast (no network involved) and they are committed against the last state of the tree. Any conflict resolution will be handled after commits, during your next pull. This is slightly different than pull-resolve-then-commit model of subversion.<br />
** by default only files you explicitly '''git add''' are put into the commit. To get '''svn ci''' equivalency use '''git commit -a''' to commit all outstanding files (I think tortoise handles this for you)<br />
** after making a commit you must then '''push''' it to a remote repository (probably origin). By default you push only branches you have previously pushed, typically master.<br />
<br />
The biggest real change is the Subversion dictates a very specific workflow. Git does not. Git allows for many different workflows, and lets each developer use the one that is best suited to his/her self.<br />
<br />
= Using Git like Subversion/trunk development =<br />
<br />
This is a set of quick instructions to use git like we do subversion development today. It is targetted for core developers (so assumes you are using the ssh access), though most of it will work for non developers by just changing a url.<br />
<br />
This is done by giving the unix commands. These options should all be available in the context menu on tortoise git as well.<br />
<br />
== Getting the source code ==<br />
<br />
'''git clone ssh://opensimulator.org/git/opensim-test'''<br />
<br />
This is the equivalent of '''svn co'''<br />
<br />
'''Note:''' all other operations assume that you are in the git directory.<br />
<br />
== Updating your checkout ==<br />
<br />
'''git pull'''<br />
<br />
This is the equivalent of '''svn update'''<br />
<br />
== Inspecting what has changed in your working tree ==<br />
<br />
'''git status'''<br />
<br />
This is the equivalent of '''svn status'''<br />
<br />
== Committing a change ==<br />
<br />
either:<br />
<br />
'''git add file1 file2 ...'''<br />
<br />
'''git commit'''<br />
<br />
or<br />
<br />
'''git commit -a'''<br />
<br />
by default git does not add all files during a commit.<br />
<br />
== Pushing the committed change ==<br />
<br />
The first time you do this you'll need to specify which branch to push.<br />
<br />
'''git push origin master'''<br />
<br />
After the first time a simple '''git push''' will be enough, as it defaults to origin, and now git knows that master should by synced to origin.<br />
<br />
'''Important:''' commits in git are local. They are not included in the main tree '''until you push''' them. This means you can create commits when you are not on the network and sync afterwards.<br />
<br />
== Setting the checkout dir to a specific revision ==<br />
<br />
'''git reset --hard #HASHVALUE'''<br />
<br />
This will effectively rewind the tree to the specific revision, and modify the checkout dir accordingly. This is equiv to '''svn up -R#version'''.<br />
<br />
git reset can also be useful if you screwed up commits and want to get rid of them<br />
<br />
== Resetting the tree to master (i.e. trunk) ==<br />
<br />
'''git pull'''<br />
<br />
per previous<br />
<br />
== Creating a Patch ==<br />
<br />
'''git format-patch #HASHVALUE'''<br />
<br />
This will create a patch suitable for attaching or emailing from a single commit. You can also specify a range of commits.<br />
<br />
This is closest to '''svn diff > patchfile.txt''' for uncommitted changes in subversion.<br />
<br />
== Applying a Git Patch ==<br />
<br />
If someone has formatted a git patch you can apply it directly (including all file adds, file mode changes, and their change log entry) with:<br />
<br />
'''git apply patchfile.patch'''<br />
<br />
== Reverting a Change ==<br />
<br />
'''git revert #HASHVALUE'''<br />
<br />
This directly reverts the change, with a commit message stating that fact. There is no svn direct equiv, though this is often accomplished through: svn diff -R revisions > revert.patch && patch -p0 < revert.patch && svn ci -m "reverting revisions"<br />
<br />
== Resetting part of the tree to master ==<br />
<br />
'''git checkout -- file1 file2 ...'''<br />
<br />
Checkout is an operation that populates the working directory from the git repository. Doing a git checkout (master is the implied branch) -- file1 file2 repulls those files from the git repo, clobbering them in your local directory. This is like '''svn revert'''.<br />
<br />
== Diffing Changes ==<br />
<br />
Against your most recently committed changes<br />
<br />
'''git diff'''<br />
<br />
From your most recent changes to a past change<br />
<br />
'''git diff #HASHVALUE'''<br />
<br />
Between any 2 changes<br />
<br />
'''git diff #HASHVALUE1 #HASHVALUE1'''<br />
<br />
== Branches ==<br />
<br />
=== Creating a Branch ===<br />
<br />
To create a new branch based on the current one, do:<br />
<br />
'''git branch &lt;branchname&gt;'''<br />
<br />
=== Changing Branches ===<br />
<br />
To change between branches do:<br />
<br />
'''git checkout &lt;branchname&gt;'''<br />
<br />
=== Tracking a Branch ===<br />
<br />
If you want to work on a specific branch, you can track it, by creating a local version of it on which you can pull and push. If you have already pulled (or fetched) from origin, you should have all remote branches names:<br />
<br />
'''git branch -a'''<br />
<br />
Will show all branches, local and remote. Choose a remote branch to track then do:<br />
<br />
'''git branch --track &lt;localbranchname&gt; remotes/origin/&lt;remotebranchname&gt;'''<br />
<br />
A new local branch will be created, which will push and pull to the specific remote branch.<br />
<br />
== Resources &amp; References ==<br />
<br />
Git - SVN Crash Course at [http://git-scm.com/course/svn.html git-scm.com/course/svn.html] <br />
<br />
Git for the lazy tutorial at [http://www.spheredev.org/wiki/Git_for_the_lazy www.spheredev.org/wiki/Git_for_the_lazy] <br />
<br />
Git Video Tutorials at&nbsp; [http://gitcasts.com/ http://gitcasts.com/]&nbsp;&nbsp; (Several Excellent Video Tutorials)<br />
<br />
The Git Community Book at [http://book.git-scm.com/ http://book.git-scm.com/]<br />
<br />
The git-svn(1) Manual Page [http://www.kernel.org/pub/software/scm/git/docs/v1.6.3.3/git-svn.html] (git-svn = Bidirectional operation between a single Subversion branch and git)<br />
<br />
The Git-Svn Cheat Sheet [http://cheat.errtheblog.com/s/gitsvn/]</div>Mathy2hhttp://opensimulator.org/wiki/DownloadDownload2011-04-23T09:05:50Z<p>Mathy2h: /* Binary Packages */</p>
<hr />
<div>{{Template:Quicklinks}}<br />
= Introduction =<br />
<font color="#ff0000">'''Note 1:'''</font> If you are reading this on any site but http://www.opensimulator.org, you might not be actually downloading OpenSimulator.org software. Please check your browser URL before proceeding any further.<br />
<br />
<font color="#ff0000">'''Note 2:'''</font> Depending on what you want to do with OpenSimulator, setting it up may require a fair amount of technical knowledge. After downloading OpenSim, please consult the several instruction manuals on this Wiki and elsewhere. Please be aware that the learning curve for operating OpenSim is steep.<br />
<br />
<font color="#ff0000">'''Note 3:'''</font> Many Linux distros (including Ubuntu) ship with only the "mono-runtime" package installed, however you need to install "mono-complete" for some OpenSimulator features such as LSL script commands. You must also use at least Mono V2.4.2 (Ubuntu 10.04 ships with mono 2.4.4 which works fine).<br />
<br />
As OpenSim is still at an alpha code maturity stage, there is absolutely no guarantee that functionality works or is stable.<br />
<br />
<br />
<br />
<br />
= Binary Packages =<br />
<br />
== Current release ==<br />
Binary packages of the latest OpenSim release are provided in .zip or .tar.gz form - these are identical apart from the compression format. Once you've unzipped/untarred these you'll be able to run OpenSim 'out of the box' in standalone mode - no code compilation required.<br />
<br />
The current release is '''{{LastReleaseVersion}}''' (released on {{LastReleaseDate}}) and can be downloaded at: <br />
<br />
*http://dist.opensimulator.org/opensim-{{LastReleaseVersion}}-bin.tar.gz or <br />
*http://dist.opensimulator.org/opensim-{{LastReleaseVersion}}-bin.zip<br />
<br />
After unpacking please read the [[{{LastReleaseVersion}} Release]] Notes.<br />
Further instructions may be found in README.txt after you untar/unzip the archives.<br />
<br />
== Release Candidate ==<br />
This is a release candidate for the next version of OpenSim. Please download this if you want to help with regression testing, otherwise we recommend that you use the current release. Please file any regression bugs in the {{LastTestVersion}} section in [http://opensimulator.org/mantis the bug tracker]. As this is alpha software, only bugs that represent a serious regression with respect to previous OpenSim functionality will be assessed. Other bugs should be raised against the master category as usual (after checking to see if there is an existing bug for that problem).<br />
<br />
Binary packages of the release candidate are provided in .zip or .tar.gz form - these are identical apart from the compression format. Once you've unzipped/untarred these you'll be able to run OpenSim 'out of the box' in standalone mode - no code compilation required.<br />
<br />
The current test release is '''{{LastTestVersion}}''' (released on {{LastTestDate}}) and can be downloaded at: <br />
<br />
*http://dist.opensimulator.org/opensim-{{LastTestVersion}}-bin.tar.gz or <br />
*http://dist.opensimulator.org/opensim-{{LastTestVersion}}-bin.zip<br />
<br />
After unpacking please read the [[0.7.1 Release]] Notes.<br />
Further instructions may be found in README.txt after you untar/unzip the archives.<br />
<br />
= Installers =<br />
<br />
The OpenSim project does not currently provide installers for the latest releases - you're better off downloading the binary packages and just unzipping them - this is equivalent to an installation. However, if you do want an executable installer, here are some links to some install packages.<br />
<br />
* '''0.6.x Mac OS X Installer '''<br />
http://forge.opensimulator.org/gf/download/frsrelease/206/706/OpenSimulator-0.6.8.dmg<br />
http://forge.opensimulator.org/gf/download/frsrelease/198/587/OpenSimulator-0.6.6-post-fixes-r9993.dmg<br />
<br />
* '''0.6.6 (and other releases/revs) unofficial Debian and Ubuntu Linux .deb packages<br />
http://opensimulator.org/wiki/UnofficialDebPackages<br />
<br />
= Other Distributions =<br />
<br />
Other projects are free to repackage OpenSim and add their own modules or configuration. Current known distributions are<br />
<br />
* Diva Distribution, a '''Preconfigured hypergrided standalone,''' binary distribution. Easy to setup and to keep up to date. Windows and Linux/Unix. Download the file diva-rNNNN.zip, unzip it, read README.txt and take it from there.<br />
http://github.com/diva/d2/downloads<br />
<br />
* OSGrid distribution. This is preconfigured for connection of an OpenSim instance to http://osgrid.org.<br />
http://www.osgrid.org/elgg/pg/utilities/software<br />
<br />
= Source code =<br />
<br />
==Current release==<br />
If for some reason you cannot run the binary distribution, you can grab the sources and compile them. The latest source packages are always hosted at http://dist.opensimulator.org.<br />
<br />
*http://dist.opensimulator.org/opensim-{{LastReleaseVersion}}-source.tar.gz or <br />
*http://dist.opensimulator.org/opensim-{{LastReleaseVersion}}-source.zip<br />
<br />
Both these packages are the same except for the compression format.<br />
<br />
==Release candidate==<br />
Please refer to the binary release candidate section above for more details. These source packages are hosted at http://dist.opensimulator.org<br />
<br />
*http://dist.opensimulator.org/opensim-{{LastTestVersion}}-source.tar.gz or <br />
*http://dist.opensimulator.org/opensim-{{LastTestVersion}}-source.zip<br />
<br />
Both these packages are the same except for the compression format.<br />
<br />
= Previous releases =<br />
You can find previous releases of OpenSim at http://dist.opensimulator.org. Older releases only have source code packages.<br />
<br />
= Developers and Testers =<br />
If you're a developer or a tester and you want to download possibly broken development code then please [http://opensimulator.org/wiki/Developer_Documentation#Source_Code_Repository_Access go here]<br />
<br />
=Related Software=<br />
* [[Related_Software|Related Software Section]].<br />
* You can also find OpenSimulator modules and other projects on the [http://forge.opensimulator.org/gf/ OpenSimulator Forge].<br />
<br />
''Pages by Category:''[[:Category:Users| User-pages]],[[:Category:Development| Developer-pages]],[[:Category:Scripts| Scripts]]<br /><br />
<br />
[[Category:Users]]<br />
[[Category:Developers]]</div>Mathy2h