Difference between revisions of "GIT"

From ArmadeusWiki
Jump to: navigation, search
m (Clean way)
m (U-Boot)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
We have migrated our Source Code Management tool to GIT scm.
+
[[Category: U-Boot]]
Therefore the Armadeus software release 3.1 is the last one available under SVN management tool.
+
[[Category: BSP]]
 +
[[Category: GIT]]
 +
[[Category: Buildroot]]
 +
 
 +
We have migrated our Source Code Management tool to GIT scm since some time now (Armadeus software release 3.1 was the last one available under SVN management tool).
 
This page aims to help you to use our new GIT tool.
 
This page aims to help you to use our new GIT tool.
  
Line 29: Line 33:
 
==How to use GIT (Developers)==
 
==How to use GIT (Developers)==
 
*Get the Armadeus GIT/SF repository in the ''armadeus'' directory (will be created):
 
*Get the Armadeus GIT/SF repository in the ''armadeus'' directory (will be created):
{{Note| This is the '''Read Only''' method for people wanting to get the latest features. You won't be able to "push" your modifications directly (send us a patch instead).}}<pre class="host">
+
{{Note| This is the '''Read Only''' method for people wanting to get the latest features. You won't be able to "push" your modifications directly (send us a patch instead).}}
$ git clone git://armadeus.git.sourceforge.net/gitroot/armadeus/armadeus armadeus
+
<pre class="host">
 +
$ git clone git://git.code.sf.net/p/armadeus/code armadeus
 
</pre>
 
</pre>
  
Line 81: Line 86:
 
<pre class="host">
 
<pre class="host">
 
$ git checkout my_work
 
$ git checkout my_work
 +
Switched to branch 'my_work'
 
$ git branch
 
$ git branch
 
   master
 
   master
Line 87: Line 93:
 
* do a commit for each unitary change
 
* do a commit for each unitary change
 
<pre class="host">
 
<pre class="host">
 +
$ git add xxx/xxx/xxx
 
$ git commit -m "blah blah blah"
 
$ git commit -m "blah blah blah"
 
</pre>
 
</pre>
Line 95: Line 102:
 
* then you can send them to the armadeus-forum mailing list (if james.bond@007.com can send mail to this list):
 
* then you can send them to the armadeus-forum mailing list (if james.bond@007.com can send mail to this list):
 
<pre class="host">
 
<pre class="host">
$ git send-email --from=james.bond@007.com --to=armadeus-forum@lists.sourceforge.net 0001-toto.patch 0002-toto.patch
+
$ git send-email --from=james.bond@007.com --to=armadeus-forum@lists.sourceforge.net --smtp-server=smtp.xxx.xx 0001-toto.patch 0002-toto.patch
 
</pre>
 
</pre>
 
* if your work is accepted, you can rebase your branch and then delete it ?:
 
* if your work is accepted, you can rebase your branch and then delete it ?:
Line 104: Line 111:
 
* Get the GIT/SF repository in Read/Write mode (for integrators only) in the ''armadeus'' directory (will be created):
 
* Get the GIT/SF repository in Read/Write mode (for integrators only) in the ''armadeus'' directory (will be created):
 
<pre class="host">
 
<pre class="host">
$ git clone ssh://USER@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus armadeus
+
$ git clone ssh://USER@git.code.sf.net/p/armadeus/code armadeus
 
</pre>
 
</pre>
 
* Before the first commit, define your global personnal data:
 
* Before the first commit, define your global personnal data:
Line 127: Line 134:
 
or  
 
or  
 
$ git commit -a -m 'Explain what I changed'        (if you have local modifications (=not versioned files) and wants GIT to ignore them)
 
$ git commit -a -m 'Explain what I changed'        (if you have local modifications (=not versioned files) and wants GIT to ignore them)
 +
</pre>
 +
* Commit someone else work's:
 +
<pre class="host>
 +
$ git commit -m "Message..." --author "FirstName Name <email@address.com>"
 
</pre>
 
</pre>
 
* Update your repository to the latest version on SF:
 
* Update your repository to the latest version on SF:
Line 140: Line 151:
 
$ git tag -m "Creates TAG for Armadeus 3.1 release" release-3.1
 
$ git tag -m "Creates TAG for Armadeus 3.1 release" release-3.1
 
$ git push --tags origin master
 
$ git push --tags origin master
 +
</pre>
 +
===Commit with someone else identity===
 +
<pre class="host>
 +
$ git commit --author "Firstname Lastname <email@address.com>"
 
</pre>
 
</pre>
  
==GIT to do list==
+
== Links ==
* To update to support git:
+
 
# buildroot/target/device/armadeus/linux/kernel-patches/move-patches.sh
+
=== U-Boot ===
 +
For the OPOS6UL, OPOS6UL_Nano and the OPOS6UL_SP boards, Armadeus BSP will download U-Boot from specific [https://sourceforge.net/p/armadeus/u-boot/ci/master/tree/ armadeus uboot git] :
 +
<pre>
 +
git clone git://git.code.sf.net/p/armadeus/u-boot armadeus-u-boot
 +
</pre>

Latest revision as of 14:19, 17 September 2018


We have migrated our Source Code Management tool to GIT scm since some time now (Armadeus software release 3.1 was the last one available under SVN management tool). This page aims to help you to use our new GIT tool.

Install GIT

  • Install the following packages if needed:
git-core gitk git-gui
  • If you want to send us patches through email, you will need to install these additional packages:
git-email

In that case you may need to install/configure sendmail or postfix or exim mail server ([1]).

How to use GIT (for everyone)

Tutorials

  1. GIT-SVN Crash course
  2. Everyday GIT With 20 Commands Or So
  3. GIT website

Basics

  • Update your repository to the latest version on SF:
$ git pull

How to use GIT (Developers)

  • Get the Armadeus GIT/SF repository in the armadeus directory (will be created):
Note Note: This is the Read Only method for people wanting to get the latest features. You won't be able to "push" your modifications directly (send us a patch instead).
$ git clone git://git.code.sf.net/p/armadeus/code armadeus
  • Before beginning to do your modifications don't forget to update your view:
 $ git pull
  • If you have modified some armadeus files and want to revert few files only
$ git checkout path_to_file
  • If you have modified some armadeus files and want to revert all your changes
$ git clean -dfx
$ make apf9328_defconfig or make apf27_defconfig
  • If git pull fails with an error: "Untracked working tree file '{SOMEFILE}'"
$ rm -rf {SOMEFILE}
$ git pull

Providing modifications

Developers wanting to propose their development should provide us a patch against the latest GIT revision available. The process to follow is:

  • Have a working view, let's call it armadeus
  • update your it:
$ git pull

Quick way

  • do your modifications
  • test them ;-)
  • do a patch:
$ git diff > my_changes.patch
  • send it on the armadeus-forum mailing list with your usual mail client

Clean way

  • create a branch for your work (here my_work):
$ git branch
* master
$ git branch my_work
  • make it the working branch:
$ git checkout my_work
Switched to branch 'my_work'
$ git branch
  master
* my_work
  • do a commit for each unitary change
$ git add xxx/xxx/xxx
$ git commit -m "blah blah blah"
  • when work is finished, ask git to generate signed patches (0001-toto.patch, 0002-toto.patch, one for each commit....):
$ git format-patch -M master..my_work -s
  • then you can send them to the armadeus-forum mailing list (if james.bond@007.com can send mail to this list):
$ git send-email --from=james.bond@007.com --to=armadeus-forum@lists.sourceforge.net --smtp-server=smtp.xxx.xx 0001-toto.patch 0002-toto.patch
  • if your work is accepted, you can rebase your branch and then delete it ?:
TBDJB

http://elinux.org/Git_usage

How to use GIT (Armadeus integrators)

  • Get the GIT/SF repository in Read/Write mode (for integrators only) in the armadeus directory (will be created):
$ git clone ssh://USER@git.code.sf.net/p/armadeus/code armadeus
  • Before the first commit, define your global personnal data:
$ git config --global user.name "James Bond"
$ git config --global user.email "james.bond@007.com"
  • If you want colors:
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
  • Update your repository to the latest version on SF:
$ git pull
  • Do your changes and commit to your local repository (here add fileorpath):
$ git add fileorpath
$ git commit -m 'Explain what I changed'
or 
$ git commit -a -m 'Explain what I changed'        (if you have local modifications (=not versioned files) and wants GIT to ignore them)
  • Commit someone else work's:
$ git commit -m "Message..." --author "FirstName Name <email@address.com>"
  • Update your repository to the latest version on SF:
$ git pull
  • Push your changes to SF:
$ git push
  • Tag a revision:
$ git tag -m "Creates TAG for Armadeus 3.1 release" release-3.1
$ git push --tags origin master

Commit with someone else identity

$ git commit --author "Firstname Lastname <email@address.com>"

Links

U-Boot

For the OPOS6UL, OPOS6UL_Nano and the OPOS6UL_SP boards, Armadeus BSP will download U-Boot from specific armadeus uboot git :

 git clone git://git.code.sf.net/p/armadeus/u-boot armadeus-u-boot