[prev in list] [next in list] [prev in thread] [next in thread] 

List:       squeak-beginners
Subject:    Re: [Newbies] Monticello Copy vs Save
From:       Bert Freudenberg <bert () freudenbergs ! de>
Date:       2012-10-04 22:35:14
Message-ID: 1025E843-C418-40E3-A620-EE30415A7EF0 () freudenbergs ! de
[Download RAW message or body]

On 2012-10-04, at 23:22, Jeff Gonis <jeff.gonis@gmail.com> wrote:

> Hi Everyone,
> 
> So I am working to learn the ins and out of monticello but the available \
> documentation isn't super detailed. I figured I would look towards some \
> documentation for other DVCSs and see if the general principles could help guide me \
> through Monticello.  Hg-init is one of my favorite tutorials, so I thought I would \
> try to work through it using monticello, and mapping as best as I could onto a \
> fairly mainstream DVCS model. 
> So I have created a package and made some edits and saved them to a local \
> monticello repository on disk.  Now I would like to send my changes to some \
> hypothetical "central" repository that me and the rest of the team are working off \
> of.  This would be the equivalent of a "push" in mercurial.  If I select the \
> "central" repository in the Monticello Browser and click save, it pops up a commit \
> message window and looks like it will be saving a new version of my package into \
> the central repository, even though I haven't made any changes to the package.  On \
> the other hand I can also open my local repository and copy the last revision into \
> the central repository. 
> Which of these is considered the standard way of using Monticello.

Short answer: Copy.

> Or should I be doing something completely different?  Is trying to map "hg push" \
> onto Monticello completely wrong-headed?  Please let me know and I will keep trying \
> to soldier on.

Long answer: It's a valid question. And while Monticello does *not* treat \
repositories like hg or git etc., don't worry, because at its core, MC is extremely \
simple:

	Every package version in MC is self-contained. There is no logic in the repository, \
only in each version file.

An MC repository is nothing more than a collection of versions. On disk, it's a \
collection of MCZ files. Similarly on WebDAV (e.g., squeaksource). Each MCZ contains \
a *full* snapshot of the sourcecode, and a *full* copy of the metadata, including \
*all* its history. Yes that's wasteful, but it's also TSTTCPW.

Knowing that, "pushing" a version to a remote HTTP repository is simply uploading the \
MCZ per WebDAV. It's copying a version from one directory to another, so that's what \
the "copy" button does. "Committing" a version to a repository means taking a \
snapshot of the source code, adding a new version info to the history, and saving \
that to a file on your disk (the package cache directory) and possibly to another \
repository. That's what the "save" button does, but you knew that already :)

- Bert -


_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic