Puppy Git Repository

News, happenings
Message
Author
User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

Puppy Git Repository

#1 Post by Pizzasgood »

http://git.puppylinux.ca/

Thanks go to John C. Young of igsobe.com for providing this server, and to Eric Mulcaster for letting me run free on it to set this up.

------------------------------------------------------------------------------

This is a Git repository that contains the entire Puppy Unleashed Tree, as of Puppy 4.1.2. I will update it to 4.2 shortly after it is released.

The intention of this is that it will become the means by which future Puppies are created, beginning with 4.2.1.

Reason? People will be able to see what is going on much sooner, rather than waiting for alphas to be posted. Just today, for example, Zigbert was trying to help debug a problem WhoDo is having, but not being able to see exactly what files WhoDo is using was impeding his efforts. If we had already been using Git by now, he'd have been able to just look and see for himself.

Another thing it can do is answer the question, "What exactly has changed since version XXX?" It will only be able to back to 4.1.2, of course, but from there on it will log every change. You will be able to run git diff --stat puppy-412-release..puppy-420-release to get a list of every file added, removed, or modified. Leaving off the --stat would give you actual 'diff' output. It can go between versions too.

It can also recreate the actual files from any given time.


Unlike SVN, this won't require us to pick an "elite" group who is allowed to upload. Instead, only one person can do that. At the moment, that person is me, because I'm the one who set it up. But I will shortly be turning it over to WhoDo, as soon as he releases 4.2 and I get the tree updated to match. If/when he eventually steps down from being Coordinator, control would be passed on to the next Coordinator.

It does still make it easier for other people to contribute. Like SVN, it will automate the process of keeping your working tree up to date, even if you have a bunch of local modifications. Unlike SVN, if you make a commit, it is stored on your local drive. So anybody can make commits, and they're all private.

When a feature you're working on is finished, you can submit it to WhoDo for inclusion in the main tree by using git fomat-patch to output patch files, which you send to WhoDo. Then, he looks through them, applies them with git am, tests them, and then either discards them or pushes the changes out to his public tree (the one you pull from).

An alternative to sending him patches is to set up your own server to host your own public tree. Then when you're ready to submit it, you send WhoDo a request to pull from your tree, along with the address to it and the name of the branch he should use. He then has his local repository pull the changes from yours, tests, and either discards or keeps the changes, as above.


------------------------------------------------------------------------------

What does all of this mean for You?

It depends on who you are.

If you are WhoDo, it means that in the short term, you're in for a bunch of learning and probably some headaches. You'll have to learn a new tool. But I'll help as much as needed, so don't worry. In the long term, it means you won't have to wait so long for people to be able to catch mistakes you make. It also means that you'll be more likely to be given changes in the form of patches, and will be able to apply them easily. It means that the burden of not overwriting everybody's work with everybody else's work will be lessened, shifted in part to the other people, and in part to Git itself.

If you are a frequent contributor, it means that you'll be able to check that your work was implemented properly without having to wait for an alpha release. It means that you'll be able to see how everybody else's work is implemented, so you don't have to guess. It means that if a file changes while you're working on it, Git can probably merge the change into your copy automatically, and if not, you'll at least be notified so that you can fix it now, rather than submitting it and finding out later that you overwrote somebody else's work and need to figure out how to fix it. It also means that this same protection applies to your own work, so other people will be much less likely to overwrite it. It means that you can easily see what has changed between any two points. It also means that you will be submitting patches or pull-requests to WhoDo, rather than packages or instructions on doing things. That has an important benefit: you can be fairly sure that the changes will be applied properly, as long as they don't conflict with something else WhoDo has applied since the last time he pushed, or since you submitted the change (this assumes that you had the common sense to pull the latest updates from WhoDo before submitting the patch). It also means that if there is a conflict, WhoDo might throw out your change and ask you to re-do it after pulling the latest state from his public tree - which is a good thing, because you should know much better than he how to apply your change.

If you are a Puplet creator who prefers Unleashed over remaster scripts, it means you now have the option of using an Unleashed tree in a Git repository, which in addition to the normal benefits that offers any project, you'll also theoretically be able to keep your custom Puppy up to date with the latest developments in the Official Puppy. (I'm unsure how well this will work out in the real world, especially for long term projects, but I definitely intend to find out - I'll be reviving Pizzapup shortly).

If you are a bleeding edge addict, you will be able to get the latest state as of the last time WhoDo ran git push.

If you are a regular user, who cares nothing for development nor bug testing and only wishes to download an iso, burn it, and boot it, then this doesn't mean much for you, at least directly. Indirectly, it may mean that you'll receive a better product due to the predicted improvement it will have in the developer's ability to implement things properly and detect bugs sooner.


------------------------------------------------------------------------------

Quick Start

If you want to set up a local tree to play around with, you need to have a linux partition with about 2 GB free. You also need to be able to handle a roughly 300 MB download. From the location you want the repository downloaded to, run this:

Code: Select all

git clone git://git.puppylinux.ca/puppy.git
That will create a puppy/ directory. Inside is the puppy-unleashed/ directory of an Unleashed tree. It is mostly standard, but there are a couple modifications. Mainly with respect to device files and empty directories, neither of which can be tracked by Git, so they are dealt with through extra scripts tied into createpuppy. Also, the package directories should no longer be manually renamed when small modifications have been made. A script will sort that out itself when building Puppy, temporarily renaming them to have the distinguishing version number so that the .pet packages don't overwrite eachother. That has also been tied into createpuppy, so you don't have to worry about it much.

Also, a difference from the stock 4.1.2 tree is that this one actually works, because I added the missing depmod program to boot/.

Otherwise, it pretty much works how you'd expect an Unleashed tree to work inside a Git repository.

Note that when you start using it from a cold start, it will be a little bit slow. This is inevitable with such a large project. After you run a couple commands it will become "warmed up" and run at a good speed.

One thing that will just be slow period is git gc, which does some compression and cleanup. Running it now and then can result in a significantly smaller repository though (I've seen it do as much as a 30% decrease after many changes had been made since the last run). It will happen automatically when you run certain commands if it is needed (like merging).


------------------------------------------------------------------------------

More Info


There is plenty of Git-specific documentation on the web if you need it. I've also written a lot of basic documentation concerning this server at the http://git.puppylinux.ca/ site, but I'm sure that it's probably still insufficient. Let me know of any such inefficiencies and I'll rectify them.

One thing it's short on is instructions for proper usage, best practices, etc. There is a very good reason for that: this thing is mostly unused so far. I plan to start working on a new Pizzapup soon (like, tomorrow if nothing comes up), and I'll do that in my own copy of the repository. I'll be maintaining a public tree for that project on my old computer. I haven't decided the exact repo name yet, but it will probably be something like git://pizzasgood.no-ip/pizzapup.git.


If you have a problem with the site's green-ness, I am willing to tone it down a little. I do like it though. Same goes for any other problems you have with it, like the method of highlighting commands. I like it, but I don't know how well other people will.

EDIT: Actually, I just had a good idea. I've replaced the green "outer" background with a blue one. Now it looks even better than it did before. :)

Update 2009-03-22: Corrected typo.
Last edited by Pizzasgood on Sun 22 Mar 2009, 19:54, edited 2 times in total.

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#2 Post by Pizzasgood »

FYI, I'm mainly posting this now just to announce it, providing a heads-up that this big change is approaching and giving people a chance to play around with it. There isn't currently a whole lot to interest people yet, besides the devs who may want to get a head start at learning it. It will get more interesting for other people later, when we start using it to develop Puppy 4.2.1 and (if all goes well) beyond.


And please don't anybody freak out about how hard you believe Git to be. I'm more than willing to help anybody understand things, at least as far as I understand them myself. The learning curve might be a little bit steep, but it's definitely worth it. Git's slicker than butter.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#3 Post by Lobster »

Seems a better system :)

How does this relate to Woof?
http://puppylinux.com/woof/index.html
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#4 Post by Pizzasgood »

Woof and Unleashed are booth systems for building a Linux distro. So if we eventually switch to using Woof for Puppy development, we should be able to put Woof into a Git repository just like I did with Unleashed.

I haven't had a chance to use Woof yet, so I don't really know how it's laid out and how its usage would mesh with Git. I'm on Spring Break this week, so I was hoping to play with Woof before school starts up again on Monday, but so far I haven't had a chance. I visited my grandparents over the weekend, did homework on Monday, and spent Tuesday through Thursday working on Git and writing documentation. So today I'm taking a break to start on Pizzapup and then play some Dwarf Fortress (there is a native Linux version now, which runs a a lot faster than using the Windows version in Wine). But maybe I'll try Woof tomorrow.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#5 Post by Lobster »

But maybe I'll try Woof tomorrow
Alpha 3 will be out 23/24 - just after your break :(
Woof is gaining a lot of interest and unleashed may be left behind.
Things are still unfolding . . .
One of the possibilities is code (if woof makes more use of Vala/Genie)
alongside programs on the Git system :)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

Caneri
Posts: 1513
Joined: Tue 04 Sep 2007, 13:23
Location: Canada

#6 Post by Caneri »

Hi future Git users,

I would like to see a build tree for localizations based on whatever version users decide to use..probably 4.12 or 4.2 or the future versions such as Woof.

It would be VERY cool to have an unleashed build that has all the languages available by default.

Of course this is a learning project. It also may well prove to be a solution for adding languages that are built into any new release automatically.

Your thoughts?

Eric
[color=darkred][i]Be not afraid to grow slowly, only be afraid of standing still.[/i]
Chinese Proverb[/color]

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#7 Post by Pizzasgood »

Oh yeah. I hinted at that in one of those pages I wrote, but forgot to mention it here.

What I'm thinking is we could host a public tree for the internationalization team. It would be running in parallel to the main tree. If WhoDo updates the main tree, they can pull it into theirs, and when they finish anything significant, they can have WhoDo pull it into the main tree. The internationalization team can basically mirror the development process that will be used by WhoDo for overall Puppy, but on a smaller scale focused on internationalization. So rather than a bunch of small updates getting sent to WhoDo, they'd be sent to whoever is in charge of internationalization, and then that person would send WhoDo larger chunks.

That can be done just fine without the tree being hosted, but putting it on the server would make things easier, IMHO.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
viperpiper
Posts: 13
Joined: Thu 18 Dec 2008, 11:52

#8 Post by viperpiper »

Hi,

I thought I would try and clone the repository (as much to see how git works as to see how puppy works..). I'm having a problem at the first hurdle though:

viperpiper@viperpiper-desktop:~/sandbox$ git clone git://git.puppylinux.ca/git/puppy.git
Initialized empty Git repository in /home/viperpiper/sandbox/puppy/.git/
fatal: The remote end hung up unexpectedly

Any ideas?

(git version 1.5.6.3)

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#9 Post by Pizzasgood »

I made a typo. It should be git://git.puppylinux.ca/puppy.git, not git://git.puppylinux.ca/git/puppy.git. Sorry about that.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
viperpiper
Posts: 13
Joined: Thu 18 Dec 2008, 11:52

#10 Post by viperpiper »

Thanks Pizzasgood - managed to clone no problem.

A quick question - is the git repository being used in development of 4.2? If so is there a branch (or git equivalent) I can download to have a nosey at?

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#11 Post by Pizzasgood »

Not yet. I was setting this up at the same time that everybody else was off doing 4.2 the "old" way. Now that I have it "finished", I'm just waiting on 4.2 to be finished. Once WhoDo uploads the Unleashed packages for it, and I get some free time, I'll update it to match 4.2. The update will be a little clunky, doing a lot of things at once, since I'm not doing it as we go. But then when we do 4.2.1 or 4.3, we can use Git from the get-go, so that the updates are small.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#12 Post by technosaurus »

I'm willing to learn git, but hope we can have a separate tree for future versions. I've already been working on some ideas that would require some major changes here:
http://www.murga-linux.com/puppy/viewtopic.php?t=40386
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

Caneri
Posts: 1513
Joined: Tue 04 Sep 2007, 13:23
Location: Canada

#13 Post by Caneri »

Hi PG et al,

I saw a post by magerlab (Alexander) on the 4.2 thread about localizations. He was disappointed that languages were not ready in the new 4.2

If it's possible, can a parallel build tree for the people working on languages be started soon to get localization into the builds from the start.

IMHO the world's users needs their own language in Puppy.

Eric
[color=darkred][i]Be not afraid to grow slowly, only be afraid of standing still.[/i]
Chinese Proverb[/color]

User avatar
Pizzasgood
Posts: 6183
Joined: Wed 04 May 2005, 20:28
Location: Knoxville, TN, USA

#14 Post by Pizzasgood »

I'll set one up when I update the tree to 4.2 (which has to wait until the first weekend after WhoDo finishes uploading the files for 4.2 - still need the unleashed-core and the new .pet packages before I can do that).

I'll need to know who to put in charge of it though.
[size=75]Between depriving a man of one hour from his life and depriving him of his life there exists only a difference of degree. --Muad'Dib[/size]
[img]http://www.browserloadofcoolness.com/sig.png[/img]

Caneri
Posts: 1513
Joined: Tue 04 Sep 2007, 13:23
Location: Canada

#15 Post by Caneri »

Thanks PG,

And thanks from the localization group..who ever they may be.

I suppose a query to the language people would be the first step...although I am not familiar with who is who as I'm language challenged.

We'll see who is interested...magerlab (Russian), MU(German)etc? Maybe a group effort would be good....but who is writable..hmmm.

TY,
Eric
[color=darkred][i]Be not afraid to grow slowly, only be afraid of standing still.[/i]
Chinese Proverb[/color]

User avatar
Béèm
Posts: 11763
Joined: Wed 22 Nov 2006, 00:47
Location: Brussels IBM Thinkpad R40, 256MB, 20GB, WiFi ipw2100. Frugal Lin'N'Win

#16 Post by Béèm »

Just a basic question. What does git stand for?
Time savers:
Find packages in a snap and install using Puppy Package Manager (Menu).
[url=http://puppylinux.org/wikka/HomePage]Consult Wikka[/url]
Use peppyy's [url=http://wellminded.com/puppy/pupsearch.html]puppysearch[/url]

Caneri
Posts: 1513
Joined: Tue 04 Sep 2007, 13:23
Location: Canada

#17 Post by Caneri »

Hi Beem,

Well this is what it is

Git is...

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.


The home page is http://git-scm.com/

I guess the name means "git 'er done".

Eric
[color=darkred][i]Be not afraid to grow slowly, only be afraid of standing still.[/i]
Chinese Proverb[/color]

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#18 Post by Aitch »

addendum
Git was initially written by Linus Torvalds with help of a group of hackers 'round the net.
http://git.or.cz/index.html

Brought to my attention by pizzasgood

Best info, [but no git meaning]

http://www.manpagez.com/man/7/gittutorial/

Aitch :)

User avatar
Dougal
Posts: 2502
Joined: Wed 19 Oct 2005, 13:06
Location: Hell more grotesque than any medieval woodcut

#19 Post by Dougal »

Maybe it's a joke? Linus originally wrote it and he has a bit of a sense of humour. Maybe it's his opinion of the Bitkeeper developer? It works better as a name for an app than, say, "tithead"...
What's the ugliest part of your body?
Some say your nose
Some say your toes
But I think it's your mind

User avatar
droope
Posts: 801
Joined: Fri 01 Aug 2008, 00:17
Location: Uruguay, Mercedes

#20 Post by droope »

Caneri wrote:Hi PG et al,

I saw a post by magerlab (Alexander) on the 4.2 thread about localizations. He was disappointed that languages were not ready in the new 4.2

If it's possible, can a parallel build tree for the people working on languages be started soon to get localization into the builds from the start.

IMHO the world's users needs their own language in Puppy.

Eric
Let's not confuse localizations with translations. A localization is international is usefull for every translator in the world. I think many have been included, don't know how many exactly tho.

Esmorguit deserves a statue for his/her effort in that area, that's for sure.

Cheers,
Droope

Post Reply