https://www.openembedded.org/api.php?action=feedcontributions&user=UlfSamuelsson&feedformat=atomOpenembedded.org - User contributions [en]2024-03-29T06:15:34ZUser contributionsMediaWiki 1.29.0https://www.openembedded.org/index.php?title=Getting_started&diff=5545Getting started2013-02-05T08:44:47Z<p>UlfSamuelsson: /* Ubuntu */</p>
<hr />
<div>== Required software ==<br />
<br />
Before being able to build you will need to install a fairly short list of required software on your host system. <br />
<br />
'''Note:''' for a headless (i.e. non-graphical / server) machine you can skip installing SDL and xterm, these are optional; however without SDL you will not be able to run graphical OS images within QEMU.<br />
<br />
(Lists below borrowed from the Yocto Project Quick Start guide.)<br />
<br />
=== Ubuntu ===<br />
<br />
sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm<br />
<br />
=== Fedora ===<br />
<br />
sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git cpp gcc gcc-c++ \<br />
eglibc-devel texinfo chrpath ccache SDL-devel xterm<br />
<br />
=== openSUSE ===<br />
<br />
sudo zypper install python gcc gcc-c++ git chrpath make wget diffstat texinfo python-curses libSDL-devel xterm<br />
<br />
=== CentOS ===<br />
<br />
sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git \<br />
cpp gcc gcc-c++ glibc-devel texinfo chrpath SDL-devel xterm<br />
<br />
== Setup Instructions ==<br />
<br />
At this point you have a number of different alternatives:<br />
<br />
=== Standalone OE-Core setup ===<br />
<br />
As OE-Core can be used to build working images entirely on its own, you can get started with it immediately. <br />
<br />
See '''[[OE-Core Standalone Setup]]''' for instructions.<br />
<br />
=== Systems based upon OE-Core ===<br />
<br />
There are a number of other systems that make use of the OE-Core metadata which provide their own set of setup instructions. Here are some links to "getting started" information for these:<br />
<br />
* [http://github.com/Angstrom-distribution/meta-angstrom/blob/master/README Angstrom]<br />
* [http://shr-project.org/trac/wiki/Building%20SHR SHR]<br />
* [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html Yocto Project]<br />
<br />
More can be found on the [[LayerIndex]] page under ''Distribution Layers'' (see links in the far right hand column).<br />
<br />
=== Alternative methods ===<br />
<br />
* [[oe-made-easy]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Getting_started&diff=5531Getting started2013-02-02T16:41:35Z<p>UlfSamuelsson: /* Ubuntu */</p>
<hr />
<div>== Required software ==<br />
<br />
Before being able to build you will need to install a fairly short list of required software on your host system. <br />
<br />
'''Note:''' for a headless (i.e. non-graphical / server) machine you can skip installing SDL and xterm, these are optional; however without SDL you will not be able to run graphical OS images within QEMU.<br />
<br />
(Lists below borrowed from the Yocto Project Quick Start guide.)<br />
<br />
=== Ubuntu ===<br />
<br />
sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm libneon27<br />
<br />
=== Fedora ===<br />
<br />
sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git cpp gcc gcc-c++ \<br />
eglibc-devel texinfo chrpath ccache SDL-devel xterm<br />
<br />
=== openSUSE ===<br />
<br />
sudo zypper install python gcc gcc-c++ git chrpath make wget diffstat texinfo python-curses libSDL-devel xterm<br />
<br />
=== CentOS ===<br />
<br />
sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git \<br />
cpp gcc gcc-c++ glibc-devel texinfo chrpath SDL-devel xterm<br />
<br />
== Setup Instructions ==<br />
<br />
At this point you have a number of different alternatives:<br />
<br />
=== Standalone OE-Core setup ===<br />
<br />
As OE-Core can be used to build working images entirely on its own, you can get started with it immediately. <br />
<br />
See '''[[OE-Core Standalone Setup]]''' for instructions.<br />
<br />
=== Systems based upon OE-Core ===<br />
<br />
There are a number of other systems that make use of the OE-Core metadata which provide their own set of setup instructions. Here are some links to "getting started" information for these:<br />
<br />
* [http://github.com/Angstrom-distribution/meta-angstrom/blob/master/README Angstrom]<br />
* [http://shr-project.org/trac/wiki/Building%20SHR SHR]<br />
* [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html Yocto Project]<br />
<br />
More can be found on the [[LayerIndex]] page under ''Distribution Layers'' (see links in the far right hand column).<br />
<br />
=== Alternative methods ===<br />
<br />
* [[oe-made-easy]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=FOSDEM_2013&diff=5525FOSDEM 20132013-01-28T11:04:36Z<p>UlfSamuelsson: /* Hotels */</p>
<hr />
<div>[[Category:Conferences]]<br />
<br />
= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Paul Eggleton (Saturday, Sunday)<br />
* Philip Balister (Saturday, Sunday)<br />
* Florian Boor (Saturday, (Sunday))<br />
* Ulf Samuelsson (Saturday, (Sunday))<br />
<br />
== Tasks ==<br />
A bunch of tasks need to be carried out to make our attendance a pleasant experience. Each task needs a volunteer who is willing to help.<br />
<br />
=== Event box ===<br />
<br />
The [[OE event box]] is being graciously brought to the event by Florian.<br />
<br />
Florian would like someone to take this back with them if at all possible. <br />
Volunteer - ?<br />
<br />
=== Device Tags ===<br />
People standing in front of our booth often want to know what kind of device it is that blinks so funnily. ;) We could make things easier by being able to print small tags providing some information about board manufacturer, CPU, RAM and what its relation to OpenEmbedded is.<br />
<br />
Volunteer: ?<br />
<br />
== Devices ==<br />
<br />
* Paul Eggleton - either FRI2 or Intel NUC<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
* Stickers! - Philip<br />
* OpenEmbedded Poster - Ulf<br />
<br />
== Power extensions, adapters and other stand material ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name and what stuff you can bring.<br />
* Presentation file for use on the display - ?<br />
* Machine to connect for displaying the presentation - Paul<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2013? Add your name to this page so that other developers can look out for you!<br />
<br />
* Paul Eggleton (bluelightning)<br />
* Marcin Juszkiewicz (hrw)<br />
* Philip Balister (Crofton)<br />
* Denis Carikli (GNUtoo)<br />
* Graeme Gregory (XorA)<br />
<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others. Recently, most of us stay at the Saint Nicolas due to the free breakfast and wifi.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.<br />
Free WiFi<br />
<br />
Saint Nicolas<br />
Hôtel Saint Nicolas *** <br />
Rue Marché aux Poulets 32 <br />
1000 Bruxelles Tél. +32/2-219.04.40 <br />
Fax +32/2-219.17.21 <br />
http://www.st-nicolas.be/contentENG/home.asp<br />
close to beer event, bus to Fosdem few minutes by walk from hotel.<br />
<br />
IBIS Brussels off Grand' Place<br />
Grasmarkt 100<br />
Rue du Marché aux Herbes 100<br />
1000 BRUSSELS</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=FOSDEM_2013&diff=5523FOSDEM 20132013-01-28T11:02:26Z<p>UlfSamuelsson: /* Flyers and posters */</p>
<hr />
<div>[[Category:Conferences]]<br />
<br />
= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Paul Eggleton (Saturday, Sunday)<br />
* Philip Balister (Saturday, Sunday)<br />
* Florian Boor (Saturday, (Sunday))<br />
* Ulf Samuelsson (Saturday, (Sunday))<br />
<br />
== Tasks ==<br />
A bunch of tasks need to be carried out to make our attendance a pleasant experience. Each task needs a volunteer who is willing to help.<br />
<br />
=== Event box ===<br />
<br />
The [[OE event box]] is being graciously brought to the event by Florian.<br />
<br />
Florian would like someone to take this back with them if at all possible. <br />
Volunteer - ?<br />
<br />
=== Device Tags ===<br />
People standing in front of our booth often want to know what kind of device it is that blinks so funnily. ;) We could make things easier by being able to print small tags providing some information about board manufacturer, CPU, RAM and what its relation to OpenEmbedded is.<br />
<br />
Volunteer: ?<br />
<br />
== Devices ==<br />
<br />
* Paul Eggleton - either FRI2 or Intel NUC<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
* Stickers! - Philip<br />
* OpenEmbedded Poster - Ulf<br />
<br />
== Power extensions, adapters and other stand material ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name and what stuff you can bring.<br />
* Presentation file for use on the display - ?<br />
* Machine to connect for displaying the presentation - Paul<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2013? Add your name to this page so that other developers can look out for you!<br />
<br />
* Paul Eggleton (bluelightning)<br />
* Marcin Juszkiewicz (hrw)<br />
* Philip Balister (Crofton)<br />
* Denis Carikli (GNUtoo)<br />
* Graeme Gregory (XorA)<br />
<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others. Recently, most of us stay at the Saint Nicolas due to the free breakfast and wifi.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.<br />
<br />
Saint Nicolas<br />
Hôtel Saint Nicolas *** <br />
Rue Marché aux Poulets 32 <br />
1000 Bruxelles Tél. +32/2-219.04.40 <br />
Fax +32/2-219.17.21 <br />
http://www.st-nicolas.be/contentENG/home.asp<br />
close to beer event, bus to Fosdem few minutes by walk from hotel.<br />
<br />
IBIS Brussels off Grand' Place<br />
Grasmarkt 100<br />
Rue du Marché aux Herbes 100<br />
1000 BRUSSELS</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=FOSDEM_2013&diff=5521FOSDEM 20132013-01-28T11:01:16Z<p>UlfSamuelsson: /* Manning */</p>
<hr />
<div>[[Category:Conferences]]<br />
<br />
= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Paul Eggleton (Saturday, Sunday)<br />
* Philip Balister (Saturday, Sunday)<br />
* Florian Boor (Saturday, (Sunday))<br />
* Ulf Samuelsson (Saturday, (Sunday))<br />
<br />
== Tasks ==<br />
A bunch of tasks need to be carried out to make our attendance a pleasant experience. Each task needs a volunteer who is willing to help.<br />
<br />
=== Event box ===<br />
<br />
The [[OE event box]] is being graciously brought to the event by Florian.<br />
<br />
Florian would like someone to take this back with them if at all possible. <br />
Volunteer - ?<br />
<br />
=== Device Tags ===<br />
People standing in front of our booth often want to know what kind of device it is that blinks so funnily. ;) We could make things easier by being able to print small tags providing some information about board manufacturer, CPU, RAM and what its relation to OpenEmbedded is.<br />
<br />
Volunteer: ?<br />
<br />
== Devices ==<br />
<br />
* Paul Eggleton - either FRI2 or Intel NUC<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
* Stickers! - Philip<br />
<br />
== Power extensions, adapters and other stand material ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name and what stuff you can bring.<br />
* Presentation file for use on the display - ?<br />
* Machine to connect for displaying the presentation - Paul<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2013? Add your name to this page so that other developers can look out for you!<br />
<br />
* Paul Eggleton (bluelightning)<br />
* Marcin Juszkiewicz (hrw)<br />
* Philip Balister (Crofton)<br />
* Denis Carikli (GNUtoo)<br />
* Graeme Gregory (XorA)<br />
<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others. Recently, most of us stay at the Saint Nicolas due to the free breakfast and wifi.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.<br />
<br />
Saint Nicolas<br />
Hôtel Saint Nicolas *** <br />
Rue Marché aux Poulets 32 <br />
1000 Bruxelles Tél. +32/2-219.04.40 <br />
Fax +32/2-219.17.21 <br />
http://www.st-nicolas.be/contentENG/home.asp<br />
close to beer event, bus to Fosdem few minutes by walk from hotel.<br />
<br />
IBIS Brussels off Grand' Place<br />
Grasmarkt 100<br />
Rue du Marché aux Herbes 100<br />
1000 BRUSSELS</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=List_of_Executable_tasks&diff=4579List of Executable tasks2012-01-29T19:25:57Z<p>UlfSamuelsson: </p>
<hr />
<div>Bitbake executable tasks<br />
<br />
Usage: bitbake -c <task> <module><br />
<br />
For an updated list for a specific recipe, run:<br />
<br />
bitbake -c listtasks <recipe><br />
<br />
* [[fetchall]] Fetch all source<br />
* [[build]]<br />
* [[devshell]]<br />
* [[package_write_ipk]]<br />
* [[cleansstate]] Clean the build/sstate-cache directory<br />
* [[configure]]<br />
* [[clean]] clean $WORKDIR<br />
* [[cleanall]] clean $WORKDIR and sstate-cache<br />
* [[populate_lic]]<br />
* [[package_write]]<br />
* [[populate_sysroot]]<br />
* [[buildall]]<br />
* [[populate_lic_setscene]]<br />
* [[patch]]<br />
* [[listtasks]] list all tasks that can be run for a target<br />
* [[compile]]<br />
* [[package_setscene]]<br />
* [[fetch]]<br />
* [[checkuri]]<br />
* [[package_write_ipk_setscene]]<br />
* [[package]]<br />
* [[unpack]]<br />
* [[install]]<br />
* [[populate_sysroot_setscene]]<br />
* [[checkuriall]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Documentation&diff=4577Documentation2012-01-29T19:23:09Z<p>UlfSamuelsson: </p>
<hr />
<div>Documentation that relates to Openembedded.<br />
<br />
* [http://docs.openembedded.org/usermanual/html OE User manual] [http://docs.openembedded.org/usermanual/usermanual.pdf (pdf)] [http://docs.openembedded.org/usermanual/usermanual.html (html single-page)]<br />
* [http://docs.openembedded.org/bitbake/html/ Bitbake Manual]<br />
* [http://www.pokylinux.org/doc/poky-handbook.html Poky Handbook]<br />
<br />
Articles about Openembedded:<br />
* [http://bec-systems.com/site/tag/openembedded articles at BEC Systems]<br />
** [http://bec-systems.com/site/456/capture-oe-source-changes How to Capture OE Source Code Changes to a Package]<br />
<br />
Guides and HowTos:<br />
* [[How to create a bitbake recipe for dummies]]<br />
* [[How to submit a patch for dummies]]<br />
* [[List of Executable tasks]] Usage: bitbake -c <task><br />
* [http://www.kernel-labs.org/files/openembedded-guide/openembedded-guide.html OpenEmbedded Guide by Example]<br />
* [http://www.uv-ac.de/openembedded/ OpenEmbedded HowTo]<br />
* [http://free-electrons.com/docs/openembedded/ Using OpenEmbedded to build embedded Linux distributions]<br />
<br />
[[Category:User]]<br />
[[Category:Dev]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Documentation&diff=4575Documentation2012-01-29T19:22:13Z<p>UlfSamuelsson: </p>
<hr />
<div>Documentation that relates to Openembedded.<br />
<br />
* [http://docs.openembedded.org/usermanual/html OE User manual] [http://docs.openembedded.org/usermanual/usermanual.pdf (pdf)] [http://docs.openembedded.org/usermanual/usermanual.html (html single-page)]<br />
* [http://docs.openembedded.org/bitbake/html/ Bitbake Manual]<br />
* [http://www.pokylinux.org/doc/poky-handbook.html Poky Handbook]<br />
<br />
Articles about Openembedded:<br />
* [http://bec-systems.com/site/tag/openembedded articles at BEC Systems]<br />
** [http://bec-systems.com/site/456/capture-oe-source-changes How to Capture OE Source Code Changes to a Package]<br />
<br />
Guides and HowTos:<br />
* [[How to create a bitbake recipe for dummies]]<br />
* [[How to submit a patch for dummies]]<br />
* [[List of executable bitbake tasks]] Usage: bitbake -c <task><br />
* [http://www.kernel-labs.org/files/openembedded-guide/openembedded-guide.html OpenEmbedded Guide by Example]<br />
* [http://www.uv-ac.de/openembedded/ OpenEmbedded HowTo]<br />
* [http://free-electrons.com/docs/openembedded/ Using OpenEmbedded to build embedded Linux distributions]<br />
<br />
[[Category:User]]<br />
[[Category:Dev]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=List_of_Executable_tasks&diff=4573List of Executable tasks2012-01-29T19:20:18Z<p>UlfSamuelsson: Created page with "Bitbake executable tasks bitbake -c <task> <module> * fetchall Fetch all source * build * devshell * package_write_ipk * cleansstate Clean the build/sstate-..."</p>
<hr />
<div>Bitbake executable tasks<br />
<br />
bitbake -c <task> <module><br />
<br />
* [[fetchall]] Fetch all source<br />
* [[build]]<br />
* [[devshell]]<br />
* [[package_write_ipk]]<br />
* [[cleansstate]] Clean the build/sstate-cache directory<br />
* [[configure]]<br />
* [[clean]] clean $WORKDIR<br />
* [[cleanall]] clean $WORKDIR and sstate-cache<br />
* [[populate_lic]]<br />
* [[package_write]]<br />
* [[populate_sysroot]]<br />
* [[buildall]]<br />
* [[populate_lic_setscene]]<br />
* [[patch]]<br />
* [[listtasks]] list all tasks that can be run for a target<br />
* [[compile]]<br />
* [[package_setscene]]<br />
* [[fetch]]<br />
* [[checkuri]]<br />
* [[package_write_ipk_setscene]]<br />
* [[package]]<br />
* [[unpack]]<br />
* [[install]]<br />
* [[populate_sysroot_setscene]]<br />
* [[checkuriall]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Documentation&diff=4571Documentation2012-01-29T19:13:40Z<p>UlfSamuelsson: </p>
<hr />
<div>Documentation that relates to Openembedded.<br />
<br />
* [http://docs.openembedded.org/usermanual/html OE User manual] [http://docs.openembedded.org/usermanual/usermanual.pdf (pdf)] [http://docs.openembedded.org/usermanual/usermanual.html (html single-page)]<br />
* [http://docs.openembedded.org/bitbake/html/ Bitbake Manual]<br />
* [http://www.pokylinux.org/doc/poky-handbook.html Poky Handbook]<br />
<br />
Articles about Openembedded:<br />
* [http://bec-systems.com/site/tag/openembedded articles at BEC Systems]<br />
** [http://bec-systems.com/site/456/capture-oe-source-changes How to Capture OE Source Code Changes to a Package]<br />
<br />
Guides and HowTos:<br />
* [[How to create a bitbake recipe for dummies]]<br />
* [[How to submit a patch for dummies]]<br />
* [[List of Executable tasks]]<br />
* [http://www.kernel-labs.org/files/openembedded-guide/openembedded-guide.html OpenEmbedded Guide by Example]<br />
* [http://www.uv-ac.de/openembedded/ OpenEmbedded HowTo]<br />
* [http://free-electrons.com/docs/openembedded/ Using OpenEmbedded to build embedded Linux distributions]<br />
<br />
[[Category:User]]<br />
[[Category:Dev]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Fosdem_2012&diff=4551Fosdem 20122012-01-20T00:54:46Z<p>UlfSamuelsson: /* Devices */</p>
<hr />
<div>[[Category:Conferences]]<br />
<br />
= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Robert Schuster (Saturday, Sunday)<br />
* Alex Lennon (Saturday, Sunday)<br />
* Henning Heinold (Saturday, Sunday)<br />
* Ulf Samuelsson (Saturday, Sunday)<br />
<br />
== Tasks ==<br />
A bunch of tasks need to be carried out to make our attendance a pleasant experience. Each task needs a volunteer who is willing to help.<br />
<br />
=== Table cloth ===<br />
We only have a single table cloth (it washed but has a negligible stain from a quick soldering action that happened last year). We definitely need a 2nd one to also cover our second table. The FOSDEM tables are pretty huge (2.5m length), so chose a reasonably sized cloth. Additionally it would be super cool to have the OpenEmbedded logo printed on it. The idea would be to show the logo on the front side of our tables. For that the 'OE' sign should not be taller than say 50cm (The tables are approximately 70cm high.).<br />
<br />
Volunteer: Philip Balister plans to bring 2 table cloths carrying the OE logo.<br />
<br />
=== Bringing an TFT LCD ===<br />
Displaying a presentation during the time of the conference makes our stand visually more attractive. We have a simple OpenDocument presentation in our SCM that can be used for this. However we need a display as well. If you come by car and can transport a display that'd be great. Getting a screen is not so complicated. Robert Schuster could send one to you by mail.<br />
<br />
Volunteer:<br />
<br />
=== Poster ===<br />
A nice poster with updated sponsor was used for 2011's LinuxTag in Berlin. This poster needs to be brought to FOSDEM. Where is it right now and can it be taken to Brussels?<br />
<br />
Volunteer:<br />
<br />
=== Flyers ===<br />
Years ago we printed a bunch (2500) of flyers. We still have a bunch of them left (exact number unknown; will update this as soon as I know). As the text is already a few years old it makes sense to update the actual document (it is in openembedded/contrib/marketing/oe-flyer.pdf) and print new ones.<br />
<br />
Volunteer:<br />
<br />
=== Device Tags ===<br />
People standing in front of our booth often want to know what kind of device it is that blinks so funnily. ;) We could make things easier by being able to print small tags providing some information about board manufacturer, CPU, RAM and what its relation to OpenEmbedded is.<br />
<br />
Volunteer:<br />
<br />
== Devices ==<br />
<br />
Robert Schuster - Pandaboard - Hopefully booting Angstrom with some desktop and Java foo.<br />
<br />
Alex Lennon - Gem (i.MX28 based telematics board) - Booting OpenEmbedded with an end-user demo running (hopefully)<br />
<br />
Ulf Samuelsson - Atmel AT91SAM9Gx5 Kit with 5 CPU Modules (G15,G25,G35,X25,X35)<br />
Will boot the OpenEmbedded from www.linux4sam.org<br />
A raffle for the kit will be held in the Embedded DevRoom,<br />
and you have to visit the OpenEmbedded stand to leave your business card.<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
<br />
== Power extensions, adapters and other stand material ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name and what stuff you can bring.<br />
<br />
* Robert Schuster:<br />
**3-socket power extension (EU)<br />
**tape<br />
**WiFi-Router in client mode to provide Internet access for Ethernet-based devices<br />
**2 1m-Ethernet cables<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2012? Add your name to this page so that other developers can look out for you!<br />
<br />
* Robert Schuster (rschus/thebohemian)<br />
* Henning Heinold (woglinde)<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.<br />
<br />
Saint Nicolas<br />
Hôtel Saint Nicolas *** <br />
Rue Marché aux Poulets 32 <br />
1000 Bruxelles Tél. +32/2-219.04.40 <br />
Fax +32/2-219.17.21 <br />
http://www.st-nicolas.be/contentENG/home.asp<br />
close to beer event, bus to Fosdem few minutes by walk from hotel.</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Fosdem_2012&diff=4549Fosdem 20122012-01-20T00:52:01Z<p>UlfSamuelsson: /* Manning */</p>
<hr />
<div>[[Category:Conferences]]<br />
<br />
= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Robert Schuster (Saturday, Sunday)<br />
* Alex Lennon (Saturday, Sunday)<br />
* Henning Heinold (Saturday, Sunday)<br />
* Ulf Samuelsson (Saturday, Sunday)<br />
<br />
== Tasks ==<br />
A bunch of tasks need to be carried out to make our attendance a pleasant experience. Each task needs a volunteer who is willing to help.<br />
<br />
=== Table cloth ===<br />
We only have a single table cloth (it washed but has a negligible stain from a quick soldering action that happened last year). We definitely need a 2nd one to also cover our second table. The FOSDEM tables are pretty huge (2.5m length), so chose a reasonably sized cloth. Additionally it would be super cool to have the OpenEmbedded logo printed on it. The idea would be to show the logo on the front side of our tables. For that the 'OE' sign should not be taller than say 50cm (The tables are approximately 70cm high.).<br />
<br />
Volunteer: Philip Balister plans to bring 2 table cloths carrying the OE logo.<br />
<br />
=== Bringing an TFT LCD ===<br />
Displaying a presentation during the time of the conference makes our stand visually more attractive. We have a simple OpenDocument presentation in our SCM that can be used for this. However we need a display as well. If you come by car and can transport a display that'd be great. Getting a screen is not so complicated. Robert Schuster could send one to you by mail.<br />
<br />
Volunteer:<br />
<br />
=== Poster ===<br />
A nice poster with updated sponsor was used for 2011's LinuxTag in Berlin. This poster needs to be brought to FOSDEM. Where is it right now and can it be taken to Brussels?<br />
<br />
Volunteer:<br />
<br />
=== Flyers ===<br />
Years ago we printed a bunch (2500) of flyers. We still have a bunch of them left (exact number unknown; will update this as soon as I know). As the text is already a few years old it makes sense to update the actual document (it is in openembedded/contrib/marketing/oe-flyer.pdf) and print new ones.<br />
<br />
Volunteer:<br />
<br />
=== Device Tags ===<br />
People standing in front of our booth often want to know what kind of device it is that blinks so funnily. ;) We could make things easier by being able to print small tags providing some information about board manufacturer, CPU, RAM and what its relation to OpenEmbedded is.<br />
<br />
Volunteer:<br />
<br />
== Devices ==<br />
<br />
Robert Schuster - Pandaboard - Hopefully booting Angstrom with some desktop and Java foo.<br />
<br />
Alex Lennon - Gem (i.MX28 based telematics board) - Booting OpenEmbedded with an end-user demo running (hopefully)<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
<br />
== Power extensions, adapters and other stand material ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name and what stuff you can bring.<br />
<br />
* Robert Schuster:<br />
**3-socket power extension (EU)<br />
**tape<br />
**WiFi-Router in client mode to provide Internet access for Ethernet-based devices<br />
**2 1m-Ethernet cables<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2012? Add your name to this page so that other developers can look out for you!<br />
<br />
* Robert Schuster (rschus/thebohemian)<br />
* Henning Heinold (woglinde)<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.<br />
<br />
Saint Nicolas<br />
Hôtel Saint Nicolas *** <br />
Rue Marché aux Poulets 32 <br />
1000 Bruxelles Tél. +32/2-219.04.40 <br />
Fax +32/2-219.17.21 <br />
http://www.st-nicolas.be/contentENG/home.asp<br />
close to beer event, bus to Fosdem few minutes by walk from hotel.</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4451GitPhraseBook2011-11-22T20:42:32Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.39-2011-11-22".<br />
The local copy of the branch will be called "ulf/linux-2.6.39-2011-11-22".<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf_samuelsson@telia.com"<br />
git checkout -b ulf/linux-2.6.39-2011-11-22 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.39-2011-11-22"<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-22<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.39-2011-11-22 origin/ulf/linux-2.6.39-2011-11-22<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-22<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/llinux-2.6.39-2011-11-22<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.39-2011-11-22<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4449GitPhraseBook2011-11-21T14:59:50Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.39-2011-11-21".<br />
The local copy of the branch will be called "ulf/linux-2.6.39-2011-11-21".<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf_samuelsson@telia.com"<br />
git checkout -b ulf/linux-2.6.39-2011-11-21 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.39-2011-11-21"<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-21<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.39-2011-11-21 origin/ulf/linux-2.6.39-2011-11-21<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-21<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/llinux-2.6.39-2011-11-21<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.39-2011-11-21<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4447GitPhraseBook2011-11-21T14:58:59Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-05-13".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-05-13"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf_samuelsson@telia.com"<br />
git checkout -b ulf/linux-2.6.39-2011-11-21 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.39-2011-11-21"<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-21<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.39-2011-11-21 origin/ulf/linux-2.6.39-2011-11-21<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-21<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/llinux-2.6.39-2011-11-21<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.39-2011-11-21<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4445GitPhraseBook2011-11-18T16:13:51Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-05-13".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-05-13"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf_samuelsson@telia.com"<br />
git checkout -b ulf/linux-2.6.39-2011-11-18 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.39-2011-11-18"<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-18<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.39-2011-11-18 origin/ulf/linux-2.6.39-2011-11-18<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.39-2011-11-18<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/llinux-2.6.39-2011-11-18<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.39-2011-11-18<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4261GitPhraseBook2011-05-15T06:01:51Z<p>UlfSamuelsson: /* Pushing your changes */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-05-13".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-05-13"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30-2011-05-13 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30-2011-05-13"<br />
<br />
git push origin ulf/linux-2.6.30-2011-05-13<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30-2011-05-13 origin/ulf/linux-2.6.30-2011-05-13<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30-2011-05-13<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30-2011-05-13<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30-2011-05-13<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4259GitPhraseBook2011-05-14T11:26:10Z<p>UlfSamuelsson: /* Pushing your changes */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin origin/org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-05-13".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-05-13"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30-2011-05-13 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30-2011-05-13"<br />
<br />
git push origin ulf/linux-2.6.30-2011-05-13<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30-2011-05-13 origin/ulf/linux-2.6.30-2011-05-13<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30-2011-05-13<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30-2011-05-13<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30-2011-05-13<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4257GitPhraseBook2011-05-14T09:28:21Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-05-13".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-05-13"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30-2011-05-13 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30-2011-05-13"<br />
<br />
git push origin ulf/linux-2.6.30-2011-05-13<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30-2011-05-13 origin/ulf/linux-2.6.30-2011-05-13<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30-2011-05-13<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30-2011-05-13<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30-2011-05-13<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Required_software&diff=4251Required software2011-05-14T06:06:42Z<p>UlfSamuelsson: /* OpenEmbedded's Software Requirements */</p>
<hr />
<div>= OpenEmbedded's Software Requirements =<br />
<br />
This page is the reference of what software is needed. But [[OEandYourDistro]] is likely much faster in getting you that software actually installed. A [[OE_Ubuntu_Script | script]] for Ubuntu is provided.<br />
<br />
To use the OE build system the following software is required on your system:<br />
* [http://www.python.org/ Python] (Version 2.5.0 or 2.6.x for latest development version of bitbake)<br />
** Note that you may also need certain development files for Python e.g. for bitbake's setup.py to work. Depending on the distribution you use you may want to look for a package called "python-dev", "python-devel", or similar.<br />
* [http://www.dabeaz.com/ply/ Python-ply] PLY is an implementation of lex and yacc for<br />
Python<br />
* [http://pypi.python.org/pypi/progressbar/2.2 python-progressbar] This library provides a text mode progressbar for python.<br />
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ . It is a "testing release" and is not mirrored on the GNU mirrors.)<br />
* [http://www.gnu.org/software/m4/m4.html GNU m4]<br />
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)<br />
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)<br />
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)<br />
* [http://invisible-island.net/diffstat/diffstat.html diffstat]<br />
* [http://developer.berlios.de/projects/bitbake bitbake]<br />
<br />
== Tools to download source files ==<br />
* wget <br />
* curl <br />
* ftp<br />
* [http://www.nongnu.org/cvs/ cvs]<br />
* [http://subversion.tigris.org/ subversion]<br />
* [http://git.or.cz/index.html git]<br />
* [http://mercurial.selenic.com/ mercurial] (for some recipes)<br />
<br />
== Tools to verify integrity of the downloaded sources ==<br />
* md5sum<br />
* sha256sum<br />
<br />
== Tools to unpack sources ==<br />
* tar<br />
* bzip2<br />
* gzip<br />
* unzip<br />
<br />
== Tools to build the various *-doc packages==<br />
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]<br />
** I don't know which of these is preferred<br />
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets<br />
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called "sgmltools-lite" too<br />
* [http://sources.redhat.com/docbook-tools/ docbook-utils]<br />
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES<br />
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]<br />
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)<br />
<br />
== Other packages ==<br />
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x<br />
* [http://www.gnu.org/software/bison/bison.html Bison]<br />
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels<br />
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))<br />
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)<br />
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)<br />
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)<br />
* help2man - Create simple man pages from --help output<br />
* gawk - Text Processing Tool<br />
* chrpath - change the rpath or runpath in binaries <br />
<br />
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.<br />
<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Required_software&diff=4249Required software2011-05-14T06:02:52Z<p>UlfSamuelsson: /* OpenEmbedded's Software Requirements */</p>
<hr />
<div>= OpenEmbedded's Software Requirements =<br />
<br />
This page is the reference of what software is needed. But [[OEandYourDistro]] is likely much faster in getting you that software actually installed. A [[OE_Ubuntu_Script | script]] for Ubuntu is provided.<br />
<br />
To use the OE build system the following software is required on your system:<br />
* [http://www.python.org/ Python] (Version 2.5.0 or 2.6.x for latest development version of bitbake)<br />
** Note that you may also need certain development files for Python e.g. for bitbake's setup.py to work. Depending on the distribution you use you may want to look for a package called "python-dev", "python-devel", or similar.<br />
* [http://www.python.org/ Python] python-ply<br />
* [http://www.python.org/ Python] python-progressbar<br />
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ . It is a "testing release" and is not mirrored on the GNU mirrors.)<br />
* [http://www.gnu.org/software/m4/m4.html GNU m4]<br />
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)<br />
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)<br />
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)<br />
* [http://invisible-island.net/diffstat/diffstat.html diffstat]<br />
* [http://developer.berlios.de/projects/bitbake bitbake]<br />
<br />
== Tools to download source files ==<br />
* wget <br />
* curl <br />
* ftp<br />
* [http://www.nongnu.org/cvs/ cvs]<br />
* [http://subversion.tigris.org/ subversion]<br />
* [http://git.or.cz/index.html git]<br />
* [http://mercurial.selenic.com/ mercurial] (for some recipes)<br />
<br />
== Tools to verify integrity of the downloaded sources ==<br />
* md5sum<br />
* sha256sum<br />
<br />
== Tools to unpack sources ==<br />
* tar<br />
* bzip2<br />
* gzip<br />
* unzip<br />
<br />
== Tools to build the various *-doc packages==<br />
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]<br />
** I don't know which of these is preferred<br />
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets<br />
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called "sgmltools-lite" too<br />
* [http://sources.redhat.com/docbook-tools/ docbook-utils]<br />
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES<br />
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]<br />
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)<br />
<br />
== Other packages ==<br />
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x<br />
* [http://www.gnu.org/software/bison/bison.html Bison]<br />
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels<br />
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))<br />
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)<br />
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)<br />
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)<br />
* help2man - Create simple man pages from --help output<br />
* gawk - Text Processing Tool<br />
* chrpath - change the rpath or runpath in binaries <br />
<br />
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.<br />
<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=4205GitPhraseBook2011-04-14T20:59:22Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-01-16".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-01-16"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30-2011-04-16 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30-2011-04-16"<br />
<br />
git push origin ulf/linux-2.6.30-2011-04-16<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30-2011-04-16 origin/ulf/linux-2.6.30-2011-04-16<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30-2011-04-16<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30-2011-04-16<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30-2011-04-16<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4027Release-2011.032011-02-11T22:11:23Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''!!'''Build Machine'''!!'''Build Time'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||clean || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 1:31:10 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || minimal-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 0:01:04<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || console-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 0:01:16 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || opie-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 0:08:41<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4025Release-2011.032011-02-11T22:10:32Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''!!'''Build Machine'''!!'''Build Time'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||clean || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 1:31:10 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || minimal-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 0:01:04<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || console-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@ 2,66 GHz/ 6GB || 0:01:16 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || opie-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || N/A || N/A|| Core-i7@ 2,66 GHz/ 6GB || 0:08:41<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=User:Ulf&diff=4023User:Ulf2011-02-11T22:08:03Z<p>UlfSamuelsson: Created page with 'Ulf Samuelsson <ulf.samuelsson@atmel.com> I am doing the following in OE. Maintaining the following recipes. * at91bootstrap * u-boot (for at91) * linux (for at91) Testing o…'</p>
<hr />
<div>Ulf Samuelsson <ulf.samuelsson@atmel.com><br />
<br />
I am doing the following in OE.<br />
<br />
Maintaining the following recipes.<br />
<br />
* at91bootstrap<br />
* u-boot (for at91)<br />
* linux (for at91)<br />
<br />
Testing on <br />
* at91sam9m10ekes</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4021Release-2011.032011-02-11T22:02:42Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''!!'''Build Machine'''!!'''Build Time'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||clean || none || N/A|| Core-i7@2,66 GHz/6GB || 1:31:10 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || minimal-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@2,66 GHz/6GB || 0:01:04<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || console-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@2,66 GHz/6GB || 0:01:16 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || opie-image || Ubuntu 10.10 32 bit ||1.10.2 ||[[User:ulf|ulf]] ||inc || N/A || N/A|| Core-i7@2,66 GHz/6GB || TBD<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4019Release-2011.032011-02-11T22:01:35Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''!!'''Build Machine'''!!'''Build Time'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||clean || none || N/A|| Core-i7@2,66 GHz/6GB || 1:31:10 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || minimal-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@2,66 GHz/6GB || 0:01:04<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || console-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||inc || none || N/A|| Core-i7@2,66 GHz/6GB || 0:01:16 <br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || opie-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||inc || N/A || N/A|| Core-i7@2,66 GHz/6GB || TBD<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4017Release-2011.032011-02-11T21:55:24Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''!!'''Build Machine'''!!'''Build Time'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||clean || N/A || N/A|| Core-i7@2,66 GHz/6GB || 1:31:10 <br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4003Release-2011.032011-02-11T18:53:55Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''!!'''Build Machine'''!!'''Build Time'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-at91sam9-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||TBD || N/A || N/A<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=4001Release-2011.032011-02-11T18:27:55Z<p>UlfSamuelsson: /* Getting 2011.03 Release */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip: Download the setup scripts from http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
git clone git://gitorious.org/angstrom/angstrom-setup-scripts.git<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-at91sam9-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||TBD || N/A || N/A<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=3999Release-2011.032011-02-11T18:25:08Z<p>UlfSamuelsson: /* Getting 2011.03 Release */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
Tip:<br />
<br />
Download the setup scripts.<br />
http://gitorious.org/angstrom/angstrom-setup-scripts<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-at91sam9-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||TBD || N/A || N/A<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Category:Dev&diff=3997Category:Dev2011-02-11T18:12:23Z<p>UlfSamuelsson: </p>
<hr />
<div>Pages for OE developers with commit rights.<br />
<br />
=== RELEASES<br />
<br />
http://wiki.openembedded.org/index.php/Release-2010.12 <br />
<br />
http://wiki.openembedded.org/index.php/Release-2011.03</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=3987Release-2011.032011-02-11T11:05:05Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-at91sam9-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||TBD || N/A || N/A<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Release-2011.03&diff=3985Release-2011.032011-02-11T10:34:42Z<p>UlfSamuelsson: /* Test combinations */</p>
<hr />
<div>= Introduction =<br />
<br />
This release is currently in development. This will be tested for several combinations as listed below in the table. This does not cover all the possible combinations<br />
The list provides the information about what different DISTRO, MACHINE, IMAGE combinations were tested, along with what version of bitbake and what host distribution.<br />
<br />
= Changes since the 2010.12 Release =<br />
<br />
Here are the high level changes since the [[Release-2010.12|previous release]]<br />
<br />
* To Be Filled in.<br />
<br />
= Getting 2011.03 Release =<br />
<br />
The release can be obtained using<br />
<br />
$ git clone git://git.openembedded.org/openembedded<br />
$ cd openembedded<br />
<br />
followed by<br />
<br />
$ git checkout testing-release-2011.03<br />
<br />
or (if you like to create a local branch from the release tag to avoid ending up with detached HEAD state)<br />
<br />
$ git checkout -b testing-release-2011.03 origin/testing-release-2011.03<br />
<br />
This branch will go live as of approximately February 10th.<br />
<br />
= Test combinations =<br />
<br />
{| class="sortable" border="1"<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|-<br />
|at91sam9m10ekes ||angstrom-2008.1 || x11-at91sam9-image || Ubuntu 10.10 32 bit ||master ||[[User:ulf|ulf]] ||clean, inc || N/A || N/A<br />
|-<br />
|collie, akita, tosa, efikamx, ben-nanonote ||angstrom-2008.1, angstrom-2010.x, minimal ||console-image, x11-image, opie-image ||Debian 'Squeeze' 6.0 x86_64 ||master ||[[User:Jay7|Jay7]] ||clean, inc || N/A || N/A<br />
|-<br />
|efikamx ||minimal,minimal-uclibc ||console-image, x11-image, native-sdk-image ||Fedora 14 x86_64 ||master ||[[User:Khem|Khem]] ||clean, inc || N/A || N/A<br />
|-<br />
|hipox ||angstrom-2008.1 (angstrom-2010.x) ||minimal-image, console-image, angstrom-gnome-image, angstrom-x-image ||openSUSE 11.3 i686 ||1.10.2 ||[[User:Sledz|Sledz]] ||clean || N/A || N/A<br />
|-<br />
|bug20 ||angstrom-2008.1 ||minimal-image, console-image, openjdk-6, bug-image-production ||Ubuntu 9.04 64 Bit ||1.10.2 ||[[User:Stefan|Stefan]] ||clean, inc || N/A || N/A<br />
|-<br />
!'''machine''' !!'''distro''' !!'''target''' !!'''workstation''' !!'''bitbake''' !!'''tester''' !!'''build type''' !!'''Existing issues''' !!'''Hash tested'''<br />
|}</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=3929GitPhraseBook2011-01-28T07:45:43Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-01-16".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-01-16"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30-2011-01-16 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30-2011-01-16"<br />
<br />
git push origin ulf/linux-2.6.30-2011-01-16<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30-2011-01-16 origin/ulf/linux-2.6.30-2011-01-16<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30-2011-01-16<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout origin/org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30-2011-01-16<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30-2011-01-16<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Required_software&diff=3914Required software2011-01-21T23:06:49Z<p>UlfSamuelsson: /* OpenEmbedded's Software Requirements */</p>
<hr />
<div>= OpenEmbedded's Software Requirements =<br />
<br />
This page is the reference of what software is needed. But [[OEandYourDistro]] is likely much faster in getting you that software actually installed. A [[OE_Ubuntu_Script | script]] for Ubuntu is provided.<br />
<br />
To use the OE build system the following software is required on your system:<br />
* [http://www.python.org/ Python] (Version 2.5.0 or 2.6.x for latest development version of bitbake)<br />
** Note that you may also need certain development files for Python e.g. for bitbake's setup.py to work. Depending on the distribution you use you may want to look for a package called "python-dev", "python-devel", or similar.<br />
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ . It is a "testing release" and is not mirrored on the GNU mirrors.)<br />
* [http://www.gnu.org/software/m4/m4.html GNU m4]<br />
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)<br />
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)<br />
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)<br />
* [http://invisible-island.net/diffstat/diffstat.html diffstat]<br />
* [http://developer.berlios.de/projects/bitbake bitbake]<br />
<br />
== Tools to download source files ==<br />
* wget <br />
* curl <br />
* ftp<br />
* [http://www.nongnu.org/cvs/ cvs]<br />
* [http://subversion.tigris.org/ subversion]<br />
* [http://git.or.cz/index.html git]<br />
* [http://mercurial.selenic.com/ mercurial] (for some recipes)<br />
<br />
== Tools to verify integrity of the downloaded sources ==<br />
* md5sum<br />
* sha256sum<br />
<br />
== Tools to unpack sources ==<br />
* tar<br />
* bzip2<br />
* gzip<br />
* unzip<br />
<br />
== Tools to build the various *-doc packages==<br />
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]<br />
** I don't know which of these is preferred<br />
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets<br />
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called "sgmltools-lite" too<br />
* [http://sources.redhat.com/docbook-tools/ docbook-utils]<br />
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES<br />
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]<br />
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)<br />
<br />
== Other packages ==<br />
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x<br />
* [http://www.gnu.org/software/bison/bison.html Bison]<br />
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels<br />
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))<br />
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)<br />
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)<br />
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)<br />
* help2man - Create simple man pages from --help output<br />
* gawk - Text Processing Tool<br />
* chrpath - change the rpath or runpath in binaries <br />
<br />
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.<br />
<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Required_software&diff=3913Required software2011-01-21T23:06:04Z<p>UlfSamuelsson: /* OpenEmbedded's Software Requirements */</p>
<hr />
<div>= OpenEmbedded's Software Requirements =<br />
<br />
This page is the reference of what software is needed. But [[OEandYourDistro]] is likely much faster in getting you that software actually installed. A [[OE_Ubuntu_Script script]] for Ubuntu is provided.<br />
<br />
To use the OE build system the following software is required on your system:<br />
* [http://www.python.org/ Python] (Version 2.5.0 or 2.6.x for latest development version of bitbake)<br />
** Note that you may also need certain development files for Python e.g. for bitbake's setup.py to work. Depending on the distribution you use you may want to look for a package called "python-dev", "python-devel", or similar.<br />
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ . It is a "testing release" and is not mirrored on the GNU mirrors.)<br />
* [http://www.gnu.org/software/m4/m4.html GNU m4]<br />
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)<br />
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)<br />
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)<br />
* [http://invisible-island.net/diffstat/diffstat.html diffstat]<br />
* [http://developer.berlios.de/projects/bitbake bitbake]<br />
<br />
== Tools to download source files ==<br />
* wget <br />
* curl <br />
* ftp<br />
* [http://www.nongnu.org/cvs/ cvs]<br />
* [http://subversion.tigris.org/ subversion]<br />
* [http://git.or.cz/index.html git]<br />
* [http://mercurial.selenic.com/ mercurial] (for some recipes)<br />
<br />
== Tools to verify integrity of the downloaded sources ==<br />
* md5sum<br />
* sha256sum<br />
<br />
== Tools to unpack sources ==<br />
* tar<br />
* bzip2<br />
* gzip<br />
* unzip<br />
<br />
== Tools to build the various *-doc packages==<br />
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]<br />
** I don't know which of these is preferred<br />
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets<br />
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called "sgmltools-lite" too<br />
* [http://sources.redhat.com/docbook-tools/ docbook-utils]<br />
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES<br />
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]<br />
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)<br />
<br />
== Other packages ==<br />
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x<br />
* [http://www.gnu.org/software/bison/bison.html Bison]<br />
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels<br />
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))<br />
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)<br />
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)<br />
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)<br />
* help2man - Create simple man pages from --help output<br />
* gawk - Text Processing Tool<br />
* chrpath - change the rpath or runpath in binaries <br />
<br />
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.<br />
<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Required_software&diff=3912Required software2011-01-21T22:58:03Z<p>UlfSamuelsson: /* Other packages */</p>
<hr />
<div>= OpenEmbedded's Software Requirements =<br />
<br />
This page is the reference of what software is needed. But [[OEandYourDistro]] is likely much faster in getting you that software actually installed.<br />
<br />
To use the OE build system the following software is required on your system:<br />
* [http://www.python.org/ Python] (Version 2.5.0 or 2.6.x for latest development version of bitbake)<br />
** Note that you may also need certain development files for Python e.g. for bitbake's setup.py to work. Depending on the distribution you use you may want to look for a package called "python-dev", "python-devel", or similar.<br />
* [http://www.gnu.org/software/patch/patch.html GNU Patch] (Version 2.5.9 or later, see ftp://alpha.gnu.org/gnu/diffutils/ . It is a "testing release" and is not mirrored on the GNU mirrors.)<br />
* [http://www.gnu.org/software/m4/m4.html GNU m4]<br />
* [http://www.gnu.org/software/make/ GNU make] (Version 3.80 or later for hh.org kernels)<br />
* [http://psyco.sourceforge.net/ Psyco JIT Compiler] is recommended to increase performance (32bit only)<br />
* [http://www.perl.org/ perl] (needs newer than 5.0, how much newer? probably at least 5.6.2)<br />
* [http://invisible-island.net/diffstat/diffstat.html diffstat]<br />
* [http://developer.berlios.de/projects/bitbake bitbake]<br />
<br />
== Tools to download source files ==<br />
* wget <br />
* curl <br />
* ftp<br />
* [http://www.nongnu.org/cvs/ cvs]<br />
* [http://subversion.tigris.org/ subversion]<br />
* [http://git.or.cz/index.html git]<br />
* [http://mercurial.selenic.com/ mercurial] (for some recipes)<br />
<br />
== Tools to verify integrity of the downloaded sources ==<br />
* md5sum<br />
* sha256sum<br />
<br />
== Tools to unpack sources ==<br />
* tar<br />
* bzip2<br />
* gzip<br />
* unzip<br />
<br />
== Tools to build the various *-doc packages==<br />
* [http://www.jclark.com/jade/ Jade] or [http://www.netfolder.com/DSSSL/ OpenJade]<br />
** I don't know which of these is preferred<br />
* [http://sourceforge.net/projects/docbook/ Docbook] DTDs and DSSSL stylesheets<br />
* [http://sgmltools-lite.sourceforge.net/ sgmltools], called "sgmltools-lite" too<br />
* [http://sources.redhat.com/docbook-tools/ docbook-utils]<br />
** docbook-utils download is hard to find; look in ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES<br />
* [ftp://ftp.gnu.org/pub/gnu/texinfo/ Texinfo]<br />
* [http://www.nongnu.org/texi2html/ texi2html] (Perl script that converts Texinfo to HTML)<br />
<br />
== Other packages ==<br />
* [http://www.gnu.org/software/sed/sed.html GNU sed] 4.x<br />
* [http://www.gnu.org/software/bison/bison.html Bison]<br />
* bc (binary calculator), if you want to build a Zaurus 2.4 or any of the collie kernels<br />
* glibc headers (libc6-dev in Debian, glibc-devel in RPM based (in PLD also glibc-static is needed))<br />
* [http://www.pcre.org/ pcre headers] (Perl 5 Compatible Regular Expression Library, required for e.g. konqueror-embedded)<br />
* SDL headers to build qemu-native (apt-get install libsdl1.2-dev under Ubuntu/Debian)<br />
* [http://www.mktemp.org/mktemp/ mktemp] (required by quilt and used in some package patches)<br />
* help2man - Create simple man pages from --help output<br />
* gawk - Text Processing Tool<br />
* chrpath - change the rpath or runpath in binaries <br />
<br />
There is an ongoing effort to accurately document the required software within the OpenEmbedded and ultimately, this will be reflected in the ASSUME_PROVIDED variable.<br />
<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=3903GitPhraseBook2011-01-18T20:06:59Z<p>UlfSamuelsson: /* Example 3: Working with a private branch */</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Automatically add 'Signed-off-by:' statement ===<br />
git commit -s<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Create patches suitable for the mailing list ==<br />
This creates a series of patches of all your added work <br />
git format-patch origin<br />
You can add a 'Signed-off-by:' statement by<br />
git format-patch -s origin<br />
<br />
== Create series of patches suitable for the mailing list ==<br />
Include the last 17 commits.<br />
<br />
The patches will have a header [PATCH n/17]<br />
git format-patch -n -17<br />
<br />
== Create version 2 of a patch after feedback from the mailing list ==<br />
git format-patch -n -17 --subject-prefix='PATCH v2'<br />
<br />
== Send email to mailing list ==<br />
git send-email <patch-list><br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Prune remote branches which have been deleted ====<br />
git remote prune origin<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
# What changes have I made<br />
git status<br />
<br />
# List details of those changes<br />
git diff --cached<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30-2011-01-16".<br />
The local copy of the branch will be called "ulf/linux-2.6.30-2011-01-16"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30-2011-01-16 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30-2011-01-16"<br />
<br />
git push origin ulf/linux-2.6.30-2011-01-16<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30-2011-01-16 origin/ulf/linux-2.6.30-2011-01-16<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30-2011-01-16<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30-2011-01-16<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30-2011-01-16<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch at this time.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Fosdem_2011&diff=3889Fosdem 20112011-01-09T21:58:56Z<p>UlfSamuelsson: /* Devices */</p>
<hr />
<div>= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Robert Schuster (Saturday)<br />
* Ulf Samuelsson (Saturday and Sunday occasionally)<br />
<br />
== Devices ==<br />
Add your name and what devices you'll bring for the stand.<br />
<br />
Ulf Samuelsson - AT91SAM9M10EKES booting Openembedded/Android from SD-Card<br />
(No flash on board enabled)<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
<br />
== Power extensions and adapters ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name<br />
and what stuff you can bring.<br />
<br />
* Robert Schuster: 4-socket power extension (EU)<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2011? Add your name to this page so that other developers can look out for you!<br />
<br />
* Esben Haabendal<br />
* Frans Meulenbroeks (eFfeM)<br />
* Robert Schuster (rschus/thebohemian)<br />
* Ulf Samuelsson<br />
<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Fosdem_2011&diff=3888Fosdem 20112011-01-09T21:57:33Z<p>UlfSamuelsson: /* Manning */</p>
<hr />
<div>= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Robert Schuster (Saturday)<br />
* Ulf Samuelsson (Saturday and Sunday occasionally)<br />
<br />
== Devices ==<br />
Add your name and what devices you'll bring for the stand.<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
<br />
== Power extensions and adapters ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name<br />
and what stuff you can bring.<br />
<br />
* Robert Schuster: 4-socket power extension (EU)<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2011? Add your name to this page so that other developers can look out for you!<br />
<br />
* Esben Haabendal<br />
* Frans Meulenbroeks (eFfeM)<br />
* Robert Schuster (rschus/thebohemian)<br />
* Ulf Samuelsson<br />
<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Fosdem_2011&diff=3887Fosdem 20112011-01-09T21:55:44Z<p>UlfSamuelsson: /* General attendance */</p>
<hr />
<div>= OpenEmbedded booth =<br />
== Manning ==<br />
You are going to FOSDEM and can spend some time at the OpenEmbedded stand to explain interested individuals the virtues of OpenEmbedded? Add your name and on which day you'll be available.<br />
<br />
* Robert Schuster (Saturday)<br />
<br />
== Devices ==<br />
Add your name and what devices you'll bring for the stand.<br />
<br />
== Flyers and posters ==<br />
You can bring and/or print OpenEmbedded flyers and posters? Add your name and what you'll bring.<br />
<br />
== Power extensions and adapters ==<br />
Bringing devices is cool but we need a way to bring power to them too. Additionally people might need power sockets for different systems than the european one. List your name<br />
and what stuff you can bring.<br />
<br />
* Robert Schuster: 4-socket power extension (EU)<br />
<br />
= General attendance =<br />
<br />
Attending FOSDEM 2011? Add your name to this page so that other developers can look out for you!<br />
<br />
* Esben Haabendal<br />
* Frans Meulenbroeks (eFfeM)<br />
* Robert Schuster (rschus/thebohemian)<br />
* Ulf Samuelsson<br />
<br />
== Hotels ==<br />
<br />
Although FOSDEM itself takes place at the ULB campus, most folks prefer to stay nearer the city centre.<br />
<br />
The Astrid has traditionally been the default choice for OE developers, though there are many other hotels in the area. If you are staying in a hotel other than the Astrid, feel free to add it to this section for the benefit of others.<br />
<br />
Scandic Grand Place.<br />
Rue d'Arenberg 18<br />
Close to beer event (300 m) and Central Station.<br />
Tram to Fosdem around the corner.</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=Useful_targets&diff=1560Useful targets2009-08-12T15:06:44Z<p>UlfSamuelsson: Change deprecated "gpe-image" to "x11-gpe-image"</p>
<hr />
<div>== Overview ==<br />
<br />
Bitbake can build individual packages such as '''bitbake nano''' to build the single package '''nano''', but it's often more useful to build a set of things and say compile them into an image. <br />
<br />
== Images ==<br />
<br />
=== helloworld-image ===<br />
Builds an image, that if used as a root filesystem, will start a static executable that prints hello world, then loops infinitely. Can be used to test the Linux boot procedure into user space (init).<br />
<br />
=== bootstrap-image ===<br />
Build image contains task-base packages.<br />
<br />
=== console-image ===<br />
Build an image without the X11, gtk+, or qt windowing libraries.<br />
<br />
=== x11-image ===<br />
Builds an image with X11<br />
<br />
=== beagleboard-demo-image ===<br />
Builds the Angstrom distribution like Koen proposed.<br />
<br />
=== opie-image ===<br />
Build image based on the [http://opie.handhelds.org Open Palmtop Integrated Environment] (OPIE). OPIE is a completely Open Source based graphical user environment and suite of applications for small form-factor devices, such as PDAs, running Linux.<br />
<br />
=== opie-kdepim-image ===<br />
Build image based on the OPIE and full featured KDE-based PIM (pi-sync, ko/pi, ka/pi, etc).<br />
<br />
=== pivotboot-image ===<br />
Build image that is necessary to flash a Sharp SL C3000, Zaurus. It pivots after booting from the NAND and finalizes the install to the HD during the first boot.<br />
<br />
=== twin-image ===<br />
task-base plus a couple of editors nano and vim --- why two? and a mail reader mutt<br />
<br />
=== uml-image ===<br />
A root image for user-mode-linux. Includes task-base, and parts of opie I think.<br />
<br />
=== x11-gpe-image ===<br />
Build a [http://gpe.handhelds.org/ GPE Palmtop Environment] based rootfs. The GPE provides a user interface environment for palmtop/handheld computers running the GNU/Linux or any other UNIX-like operating system.<br />
<br />
== Tasks ==<br />
<br />
=== task-base ===<br />
Build a kernel and core packages for a basic installation. You won't be able to do much more than ssh to the machine if this is all that's installed.<br />
<br />
=== task-dvb ===<br />
meta-package for DVB application (DVB = Digital Video Broadcasting).<br />
<br />
=== task-python-everything ===<br />
all of python.<br />
<br />
=== task-native-sdk ===<br />
<br />
meta-package for native (on-device) SDK<br />
<br />
== Meta ==<br />
<br />
The directory recipes/meta contains most of these "meta" targets that build multiple packages but some of the more useful ones are detailed below:<br />
<br />
=== meta-opie ===<br />
Build all OPIE related packages and some more for OPIE based usage.<br />
<br />
=== meta-gpe ===<br />
Basic packages to go with gpe-image.<br />
<br />
== Other ==<br />
<br />
=== helloworld ===<br />
Builds a static executable that prints hello world, then loops infinitely.<br />
<br />
=== world ===<br />
Build everything. This takes a long time, a lot of network bandwidth, and a lot of disc space. Can also break your toolchain.<br />
<br />
=== package-index ===<br />
Target to update the "feed" files (Package*) to reflect the current set of .ipk's that exist in the deploy directory. Commonly used after building some packages individually to update the feed and allow them to be installed via a package manager or the opkg command line tools.<br />
<br />
=== virtual/kernel ===<br />
Builds the appropriate kernel for your device.<br />
<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=1559GitPhraseBook2009-08-12T13:48:50Z<p>UlfSamuelsson: </p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show your all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/linux-2.6.30.2".<br />
The local copy of the branch will be called "ulf/linux-2.6.30.2"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux-2.6.30.2 origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux-2.6.30.2"<br />
<br />
git push origin ulf/linux-2.6.30.2<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux-2.6.30.2 origin/ulf/linux-2.6.30.2<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux-2.6.30.2<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout org.openembedded.dev<br />
git branch -d ulf/linux-2.6.30.2<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux-2.6.30.2<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=1557GitPhraseBook2009-08-11T18:02:36Z<p>UlfSamuelsson: local should be linux</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show your all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/local".<br />
The local copy of the branch will be called "ulf/local"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux"<br />
<br />
git push origin ulf/linux<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux origin/ulf/linux<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout org.openembedded.dev<br />
git branch -d ulf/linux<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/linux<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=1556GitPhraseBook2009-08-11T18:02:02Z<p>UlfSamuelsson: Fix poor link</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show your all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/local".<br />
The local copy of the branch will be called "ulf/local"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux"<br />
<br />
git push origin ulf/linux<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux origin/ulf/linux<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout org.openembedded.dev<br />
git branch -d ulf/local<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/local<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelssonhttps://www.openembedded.org/index.php?title=GitPhraseBook&diff=1555GitPhraseBook2009-08-11T18:00:54Z<p>UlfSamuelsson: Add a complete example on how to work with a private branch</p>
<hr />
<div>= Git Phrase Book =<br />
<br />
<br />
'''NOTE:''' For increased pleasure use git 1.5 or later.<br />
<br />
== Pointers ==<br />
There are plenty of good git tutorials on the net. A small collection of links can be seen below:<br />
<br />
* [http://git.or.cz/gitwiki/GitDocumentation Official Documentation]<br />
* [http://git.or.cz/gitwiki/GitCheatSheet Cheat Sheet]<br />
* [http://book.git-scm.com/ The Git Community Book]<br />
* [http://eagain.net/articles/git-for-computer-scientists/ Git For Computer Scientists]<br />
* [http://progit.org/book/ Pro Git]<br />
* [http://www.google.com/search?q=git+documentation&ie=utf-8&oe=utf-8&aq=t Google Search]<br />
<br />
== Setup ==<br />
<br />
<br />
=== Getting the data (read-only) ===<br />
git clone git://git.openembedded.org/openembedded<br />
<br />
=== Getting the data (write-access) ===<br />
<br />
For this command to succeed you need to have provided a SSH key (see [[#Generating a ssh key]]).<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
<br />
=== Generating a ssh key ===<br />
To be able to push to the OpenEmbedded git server you will need to have the right permissions. This starts with having your public ssh key on the server. Generate a key and send the public key to the one of the core developers.<br />
<br />
# send the resulting pub key to koen, mickeyl, RP, or zecke [http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-October/006291.html [email address]]<br />
ssh-keygen -t rsa or -t dsa<br />
<br />
=== Upgrading your data (lurking) ===<br />
git pull --rebase<br />
<br />
This command will fetch new objects from the server, and try to put your local changes on top of the newly fetched revisions for your current branch. If you have no local revisions you will still be updated.<br />
<br />
Depending on your git version this command may fail and does not report any error message: Version 1.5.6.5 (Debian Lenny) does, 1.5.5.1 (Fedora 9) does not. The message is<br />
"refusing to pull with rebase: your working tree is not up-to-date".<br />
<br />
In case that 'git pull --rebase' does not work for you, try the following:<br />
<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
This information was taken from the [http://wiki.videolan.org/Git#Setting_up_.22git_up.22_.28Tip.29 VideoLAN Wiki].<br />
<br />
=== Checking out a branch ===<br />
# See which branches are available<br />
git branch -a<br />
<br />
# In theory create a branch and switch<br />
git checkout -b local origin/remote<br />
<br />
# you will now be in the dreambox branch and track this.<br />
git checkout -b org.openembedded.dreambox origin/org.openembedded.dreambox<br />
<br />
=== Configuring your tree for commits ===<br />
<br />
If you forget this, your name and email in the commit mails, may be messed up.<br />
<br />
git config user.name "Your Name"<br />
git config user.email "you@name"<br />
<br />
== Doing things with git ==<br />
<br />
=== Commit Message ===<br />
<package name> <version>| <package category> | <configfile/class name>: <summary> <br />
{ - <detail 1><br />
- <detail 2>}*<br />
<br />
=== Making your changes (old way) ===<br />
# if you have new files<br />
git add your/new/file<br />
<br />
# Commit everything<br />
git commit -a<br />
<br />
=== Making your changes (better way) ===<br />
git add your/changed/files<br />
git commit<br />
<br />
=== Making your changes (a cool way) ===<br />
git add -i<br />
git commit<br />
<br />
=== Amending to your changes ===<br />
You forgot something, no big deal, change the commit<br />
<br />
git add your/others/changes<br />
git commit --amend<br />
<br />
== Commiting someones else work ==<br />
git commit --author "Other One <other@one>"<br />
<br />
== Pushing your changes ==<br />
# just pushes the org.openembedded.dev<br />
git push origin org.openembedded.dev<br />
<br />
# the same, just simpler<br />
git push<br />
<br />
# just pushes your things to a test branch. Use the right branch! dangerous!<br />
git push origin yourname/testbranch<br />
<br />
# delete a branch<br />
git push origin :yourname/testbranch<br />
<br />
== Dealing with conflicts ==<br />
Git will tell you what needs resolving. You can use kdiff3, meld, or many other tools to resolve the conflict. Don't be afraid you can easily redo and undo everything.<br />
<br />
# Conflicts from here or something else<br />
git pull --rebase<br />
git status<br />
<br />
# Starts interactive resolver, TOOL can be kdiff3, meld or anything else<br />
git mergetool --tool=TOOL filename<br />
<br />
git rebase --continue or similar once everything got resolved<br />
<br />
== Working with git ==<br />
=== Feature branches ===<br />
==== Create your own short lived feature branch ====<br />
git checkout -b yourname/yourfeature origin/org.openembedded.dev<br />
<br />
==== Push your feature branch ====<br />
git push origin yourname/yourfeature<br />
<br />
==== Delete your branch after it was merged ====<br />
git push origin :yourname/yourfeature<br />
<br />
==== Upgrade/Rebase your branch to the latest version ====<br />
git fetch origin<br />
git rebase origin/org.openembedded.dev<br />
<br />
==== Change your history ====<br />
# select edit, squash, pick to say what to do with the commit<br />
<br />
git rebase -i origin/org.openembedded.dev<br />
<br />
# to abort the operation on a tricky merge<br />
git rebase --abort<br />
<br />
# to find out a previous state to use with git reset<br />
git reflog<br />
<br />
== Seeing changes ==<br />
<br />
=== Log ===<br />
# See what happened in a branch<br />
git log branch<br />
<br />
# See the change, HEAD or branch name will work too<br />
git show --color (COMMIT)<br />
<br />
# Only show you change on foo/file<br />
git show --color HEAD -- foo/file<br />
<br />
# Graphical browser<br />
gitk<br />
<br />
=== What did you change ===<br />
# Lists you the revs that are only in your branch compared to org.openembedded.dev<br />
git rev-list origin/org.openembedded.dev..<br />
<br />
== Other Interesting commands ==<br />
# fetch new revisions from all remote repositories<br />
git fetch<br />
<br />
# show your local branches and which branch you are in<br />
git branch<br />
<br />
# show your all branches<br />
git branch -a<br />
<br />
# create a branch and switch to it<br />
git checkout -b MYNAME origin/THEIRNAME<br />
<br />
# upgrade a branch<br />
git push origin org.openembedded.dev<br />
git reflog<br />
<br />
# Change your index to be at the state of REF<br />
git reset REF<br />
<br />
# Kill the last commit<br />
git reset HEAD^1<br />
<br />
# Prepare a set of patch<br />
git format-patch origin<br />
<br />
== Working with additional git repositories ==<br />
One of the neat things with git is you can easily work with external repositories. <br />
# add an external repository:<br />
git remote add openmoko.org git://git.openmoko.org/git/openmoko.git<br />
git fetch openmoko.org<br />
<br />
# view all remote branches available<br />
git branch -r<br />
<br />
# view changes on a remote branch<br />
gitk openmoko.org/org.openmoko.asu.stable<br />
git log openmoko.org/org.openmoko.asu.stable<br />
<br />
# view all diffs<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable<br />
<br />
# view diffs in just one subdirectory<br />
git diff origin/org.openembedded.dev openmoko.org/org.openmoko.asu.stable classes<br />
<br />
<br />
== Examples ==<br />
<br />
<br />
=== Example 1: ===<br />
<br />
vi packages/gaim/gaim.inc<br />
git commit packages/gaim/gaim.inc<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gaim: make sure do_install does its job in gaim.inc<br />
* install lib to ${libdir} instead of /usr/lib<br />
* remove executable bits from docs<br />
<br />
=== Example 2: ===<br />
<br />
diff /tmp/foo.c /oe/work/gtk+-2.8.4-r0/gtk+-2.8.4/src/foo.c > gtk-2.8.4/fix-foo.patch<br />
vi gtk+_2.8.4.bb<br />
git add gtk-2.8.4/fix-foo.patch<br />
git commit gtk-2.8.4/fix-foo.patch gtk+_2.8.4.bb<br />
git pull --rebase<br />
<br />
should have a log message like this:<br />
<br />
gtk+ 2.8.4: add patch for buffer overflow<br />
<br />
=== Example 3: Working with a private branch ===<br />
<br />
Download and create a remote private branch "origin/ulf/local".<br />
The local copy of the branch will be called "ulf/local"-<br />
When you do:<br />
<br />
git branch -a<br />
<br />
local branches will be at the top, and remote branches<br />
will be sorted in alpabetical order.<br />
<br />
Create the local branch and prepare:<br />
<br />
git clone git@git.openembedded.org:openembedded<br />
cd openembedded<br />
git config user.name "Ulf Samuelsson"<br />
git config user.email "ulf.samuelsson@atmel.com"<br />
git checkout -b ulf/linux origin/org.openembedded.dev<br />
<br />
Add something:<br />
<br />
touch test<br />
git add test<br />
git commit -m "test" test<br />
<br />
Create a remote private branch from the local branch.<br />
It will be called "origin/ulf/linux"<br />
<br />
git push origin ulf/linux<br />
<br />
Create a local branch, based on your remote private branch:<br />
<br />
git checkout -b ulf/linux origin/ulf/linux<br />
<br />
Add something to your local branch:<br />
<br />
touch test2<br />
git add test2<br />
git commit -m "test2" test2<br />
<br />
Update your remote private branch:<br />
<br />
git push origin ulf/linux<br />
<br />
Once the remote branch has been updated from a local <br />
branch you need to update any other local branches by:<br />
<br />
git fetch origin<br />
<br />
Prepare patches for the mailing list:<br />
<br />
git format-patch origin<br />
<br />
Remove your local branch:<br />
<br />
git checkout org.embedded.dev<br />
git branch -d ulf/local<br />
<br />
or possibly:<br />
<br />
git branch -D ulf/local<br />
<br />
Note that the openembedded git server will not<br />
allow you to delete a private branch.<br />
Send an email to the mailing list and this will be fixed.<br />
<br />
[[Category:Dev]]<br />
[[Category:User]]</div>UlfSamuelsson