Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Thu 23 Oct 2014, 05:28
All times are UTC - 4
 Forum index » Taking the Puppy out for a walk » Announcements
Puppy Git Repository
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 2 [27 Posts]   Goto page: 1, 2 Next
Author Message
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Fri 20 Mar 2009, 00:43    Post subject:  Puppy Git Repository
Subject description: For future development of official releases.
 

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:
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. Smile

Update 2009-03-22: Corrected typo.

Last edited by Pizzasgood on Sun 22 Mar 2009, 15:54; edited 2 times in total
Back to top
View user's profile Send private message Visit poster's website 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Fri 20 Mar 2009, 00:48    Post subject:  

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.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
Lobster
Official Crustacean


Joined: 04 May 2005
Posts: 15117
Location: Paradox Realm

PostPosted: Fri 20 Mar 2009, 01:30    Post subject:  

Seems a better system Smile

How does this relate to Woof?
http://puppylinux.com/woof/index.html

_________________
Puppy WIKI
Back to top
View user's profile Send private message Visit poster's website 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Fri 20 Mar 2009, 09:35    Post subject:  

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.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
Lobster
Official Crustacean


Joined: 04 May 2005
Posts: 15117
Location: Paradox Realm

PostPosted: Fri 20 Mar 2009, 11:04    Post subject:  

Quote:
But maybe I'll try Woof tomorrow


Alpha 3 will be out 23/24 - just after your break Sad
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 Smile

_________________
Puppy WIKI
Back to top
View user's profile Send private message Visit poster's website 
Caneri

Joined: 04 Sep 2007
Posts: 1580
Location: Canada

PostPosted: Fri 20 Mar 2009, 17:27    Post subject:  

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

_________________
Be not afraid to grow slowly, only be afraid of standing still.
Chinese Proverb

Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Sat 21 Mar 2009, 03:50    Post subject:  

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.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
viperpiper


Joined: 18 Dec 2008
Posts: 13

PostPosted: Sun 22 Mar 2009, 14:37    Post subject:  

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)
Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Sun 22 Mar 2009, 15:52    Post subject:  

I made a typo. It should be git://git.puppylinux.ca/puppy.git, not git://git.puppylinux.ca/git/puppy.git. Sorry about that.
_________________
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

Back to top
View user's profile Send private message Visit poster's website 
viperpiper


Joined: 18 Dec 2008
Posts: 13

PostPosted: Tue 24 Mar 2009, 18:37    Post subject:  

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?
Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Tue 24 Mar 2009, 21:51    Post subject:  

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.
_________________
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

Back to top
View user's profile Send private message Visit poster's website 
technosaurus


Joined: 18 May 2008
Posts: 4353

PostPosted: Thu 26 Mar 2009, 22:13    Post subject:  

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

_________________
Web Programming - Pet Packaging 100 & 101
Back to top
View user's profile Send private message 
Caneri

Joined: 04 Sep 2007
Posts: 1580
Location: Canada

PostPosted: Sat 28 Mar 2009, 13:20    Post subject:  

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

_________________
Be not afraid to grow slowly, only be afraid of standing still.
Chinese Proverb

Back to top
View user's profile Send private message 
Pizzasgood


Joined: 04 May 2005
Posts: 6270
Location: Knoxville, TN, USA

PostPosted: Sun 29 Mar 2009, 15:48    Post subject:  

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.

_________________
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

Back to top
View user's profile Send private message Visit poster's website 
Caneri

Joined: 04 Sep 2007
Posts: 1580
Location: Canada

PostPosted: Sun 29 Mar 2009, 16:05    Post subject:  

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

_________________
Be not afraid to grow slowly, only be afraid of standing still.
Chinese Proverb

Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 2 [27 Posts]   Goto page: 1, 2 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Taking the Puppy out for a walk » Announcements
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.1126s ][ Queries: 11 (0.0044s) ][ GZIP on ]