From The Mana World
m (Move page script moved page Dev:Git repository to Development:Git repository: Rename Dev: to Development: so the miraheze import works)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{category:outdated}}
==Git==
==Git==


'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories.  
[https://gitlab.com/ GitLab] and [https://github.com/ github] are websites that provide free hosting of public git repositories.  
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork.  
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to  participate in the development or to create your own fork.  
Line 9: Line 9:
See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.
See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.


In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct.  
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct.  
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written  to make it the entry point of the  wiki development part.
Line 19: Line 19:




With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new <code>svn checkout</code>).
With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://gitlab.com/ gitlab.com]'''. '''gitlab''' is a friendly website. On '''gitlab''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new <code>svn checkout</code>).


We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.
We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete [https://gitlab.com/themanaworld list of The Mana World projects] on '''gitlab'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on [https://github.com/themanaworld GitHub] and on [https://gitlab.com/evol Evol's GitLab].
 
{|border="1" cellspacing="0" cellpadding="5"
! Project
! Read-only URL
! Atom feed
|-
|colspan=4| <span style="color:White; background:Sienna">TMW, TMW eAthena</span>
|-
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''
| git://github.com/themanaworld/tmw-branding.git
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]
|-
|colspan=4|This repository contains the branding files to turn Mana into TMW.
|-
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''
| git://github.com/themanaworld/tmwa.git
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]
|-
|colspan=4|This repository contains our hacked up eAthena.
|-
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''
| git://github.com/themanaworld/tmwa-server-data.git
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World.
|-
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''
| git://github.com/themanaworld/tmwa-client-data.git
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]
|-
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .
|-
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''
| git://github.com/themanaworld/tmw-art.git
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]
|-
|colspan=4|This repository contains some sources for our artwork.
|-
| '''[https://github.com/themanaworld/tmw-music TMW music]'''
| git://github.com/themanaworld/tmw-music.git
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]
|-
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server.
|-
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''
| git://github.com/themanaworld/themanaworld-website.git
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]
|-
|colspan=4|This repository contains the website of The Mana World.
|-
|colspan=4|<span style="color:White; background:Sienna">Official client: ManaPlus.</span>
|-
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''
| https://gitlab.com/manaplus/manaplus.git
| [https://gitlab.com/manaplus/manaplus.atom Atom]
|-
|colspan=4|This repository contains the ManaPlus client sources.
|}
 
For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.


Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:
Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:


# Signed up to github.com
# Signed up to gitlab.com
# Generated a private/public ssh keypair (if you haven't got this already)
# Generated a private/public ssh keypair (if you haven't got this already)
# Filled in your public key in your account details on GitHub
# Filled in your public key in your account details on GitLab
# Been added with commit rights to the repository
# Been added with commit rights to the repository
# Followed the directions in the [How to Develop] page
# Followed the directions in the [How to Develop] page
You can also push over HTTPS but that's not advised, and will require configuring a push token.


== Working with git ==
== Working with git ==
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld]  
All TMW specific repositories have been moved to github: [https://github.com/themanaworld https://github.com/themanaworld]
 
Most were later moved to GitLab, but not all of them: [https://gitlab.com/themanaworld https://gitlab.com/themanaworld]
 
And as of 2024 everything which doesn't use GitHub Pages or GitLab Pages is on [https://git.themanaworld.org/explore/groups https://git.themanaworld.org/explore/groups]


:::'''[[Working With Git]]'''
:::'''[[Working With Git]]'''
Line 108: Line 54:
=== git on Windows ===
=== git on Windows ===


When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable <code>core.autocrlf</code> using <code>git config core.autocrlf false</code>. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.
When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable <code>core.autocrlf</code> using <code>git config core.autocrlf false</code>. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. Commiting Windows Newlines causes changes to be rejected by the linter. When encountering this problem it is usually best to consult other developers about the affected files.
 
GitHub works uses the same tools as Git.
GitHub works uses the same tools as Git.
:'''GUIs'''
:'''GUIs'''
Line 115: Line 62:
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]
Both GitHab and GitLab have a Web IDE.
=== git on MacOS X ===
=== git on MacOS X ===
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add  a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]

Latest revision as of 03:56, 27 March 2024

These are articles that require updating, moving to archive or deletion (see also Template:Delete).

Git

git is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others. GitLab and github are websites that provide free hosting of public git repositories. At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [1] for reference. (Note server code was transferred to github since it was written) We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to participate in the development or to create your own fork.

See the wikipedia article about Git and the Git homepage for details about Git.

In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:

  • This page: The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct.
  • How to Develop also duplicates some info which you can find else where. It will be completely re-written to make it the entry point of the wiki development part.
  • Working With Git contains the most up to date information to use Git with the command line. It is the actual reference that you should follow. It is important to read it even if you plan to use a graphical user interface.

The primary repository

Initial setup

With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on gitlab.com. gitlab is a friendly website. On gitlab the main repository for each project is called master. Once you click to the master repository, you can see several ways to clone it (the new svn checkout).

We've categorized all projects related to The Mana World, as well as the repositories for each project, so you can easily see the complete list of The Mana World projects on gitlab. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. We still host some content on GitHub and on Evol's GitLab.

Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:

  1. Signed up to gitlab.com
  2. Generated a private/public ssh keypair (if you haven't got this already)
  3. Filled in your public key in your account details on GitLab
  4. Been added with commit rights to the repository
  5. Followed the directions in the [How to Develop] page

You can also push over HTTPS but that's not advised, and will require configuring a push token.

Working with git

All TMW specific repositories have been moved to github: https://github.com/themanaworld

Most were later moved to GitLab, but not all of them: https://gitlab.com/themanaworld

And as of 2024 everything which doesn't use GitHub Pages or GitLab Pages is on https://git.themanaworld.org/explore/groups

Working With Git

You may also have a look to the original documentation at http://git-scm.com/documentation

  • gitk: A simple but effective tool that visualizes the history and some of your current state. Run with --all to have it show all branches, otherwise it will just show stuff relevant to your current branch.
  • tig: A textual interface, rather similar to an email reader.
  • git gui: A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.
  • Giggle
  • qgit
  • git-cola : http://git-cola.github.com/
  • SmartGit : http://www.syntevo.com/smartgit/index.html'

git on Windows

When using git on Windows you might use msysgit. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable core.autocrlf using git config core.autocrlf false. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. Commiting Windows Newlines causes changes to be rejected by the linter. When encountering this problem it is usually best to consult other developers about the affected files.

GitHub works uses the same tools as Git.

GUIs

Both GitHab and GitLab have a Web IDE.

git on MacOS X

MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the official download site: http://git-scm.com/downloads and choose the OS X link, download and install. You also may prefer http://code.google.com/p/git-osx-installer/ and add a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: https://gist.github.com/656299

GUIs
  • GitHub for Mac github

has it's own application that you can find at http://mac.github.com/. Among others, it has a very nice feature to be able to pull and push in one operation.

Glossary

You may like this very nice interactive memo: git-cheatsheet by Andrew Patterson from NDP software.

  • Branch
  • Clone
  • Commit
  • Fork
  • Mainline
  • Master
  • Merge
  • Origin
  • Patch
  • Pull
  • Push
  • Stash
  • Tree