I would be happier with much less...

1) a button in the /admin/mercurial/revision/<n> page that says [diff]
and provides a text output with a diff between the revision and the
current code

2) a few more fields in the /admin/mercurial/commit page that say

changelog: write something here
repository: https://<....>.googlecode.com/hg/
push: yes/[no] (if yes code is pushed in googlecode)
pop: yes/[no] (if yes, current code is cloned from googlecode and
overwritten)

I think of [merge] as a third order approximation and it is difficult
to get it right.

Massimo


On Oct 24, 10:16 pm, mart <msenecal...@gmail.com> wrote:
> K, good stuff! I'll use what you and Boris came up with and integrate
> to mine (will help speed things up) the other project :) and for the
> other thing, great idea (i think).  what do you mean by "web
> repository"? do you mean reproduce from the code behind a live web2py
> server instance? which would be a grand idea! if that's what you mean.
> I would doable if a well kept manifest (generated through automation
> on "pull") describing in xml format file names (path) and rev # be
> installed long with web2py. then a simple xmlrpc meg over https should
> get you a nice xml file wich can be used to resolve the variables used
> in a hg pull cmd. (at least that's what I'd do to start) - I do
> something like that to get build automation to talk to the bug
> tracking system (keeps QA happy with reports like "build X contains
> THIS list of bug fixes as described in THIS list of changelist
> description, which contains THIS list of affected files, which was
> checked in by THIS user, and reviewd by etc...."
>
> But, please let me know if I got the requirement all wrong, and I'll
> be happy to suggest another approach.
>
> For the diff requirement: I would definitely start fro the bottom up.
> This is what I do currently do with Perforce (logic should be
> similar).
>
> 1) I generate an XML representation of a directory structure (where I
> need to be able to specify any folder within my dir structure as the
> "root" folder (the starting point), and need to be able to exclude
> files and/folders as params to the function call.
>
> 2) once I have my xml object (I like a well structured Element Tree
> for this type of thing), I will simply pass the elements (in a loop)
> to a function that will have the know-how to return a correct mapping
> between repository and workspace (i think Mercurial calls this the
> Working Directory).
>
> 3) diff the file, capture the diff (if any) store it (keeping the the
> return strings in order is important, so I keep each return values as
> a dictionary within warm brackets of a collection that respects order
> (like a deque()).
>
> once done and have gone through the the complete fileset, then it just
> depends on how fancy we want to be (color, special indentation, format
> to 2 pages, etc..._) or the complete returned values can be formatted
> and handed to araxis (or something like that)...
>
> in the .hg word, its a little more convoluted in that I believe
> another repository needs to be created and changes pulled from the
> from the revision you are interested in (can be any revision or
> "latest" but it does need to be specified. Would look something like
> this:
>
> mkdir myTempDir
> cd myTempDir
> hg init
> hg pull myTempDir
> hg update -r N
>
> then do that recursive diff as discussed above
>
> is this what you were looking for?
>
> Mart :)
>
> connect to app admin through script:
> On Oct 24, 9:14 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
>
>
>
>
> > Actually I just did this with some help from Boris from the mercurial
> > mailing list.
>
> > Now if you run web2py from source ad you have mercurial installed
> > (easy_install mercurial) you can use the web2py admin to:
>
> > - create a repository (this is done automatically and it also makes
> > a .hgignore)
> > - commit file
> > - see log changes
> > - see list of files for each committed revision
> > - revert to past revision
>
> > (all by just clicking)
>
> > One important missing feature is the ability to get a diff vs a given
> > revision.
> > Another feature I would like to have is the ability to push from a web
> > repository or revert to it.
>
> > On Oct 24, 8:09 pm, mart <msenecal...@gmail.com> wrote:
>
> > > Hi Massimo,
>
> > > Ok, now I feel bad...  I have not had the time to finish the
> > > integration app I promised... Much is done, but not yet complete...  I
> > > still do intend on completing though... hopefully soon...
>
> > > Until then, what is your intent here? are you looking to restore a
> > > fileset (or entire tree) to a specific version from repo  (without
> > > changing meta data), are you looking to drop all meta changes, revert
> > > you local code line to known state?
>
> > > are you looking for a quick and dirty recipe like with combination of
> > > cmds to delete local changesets and revert to a speciic version (or
> > > #head revision) of the remote depot? like:
> > > delete local repo, then:
> > > hg init --> create new
> > > hg pull --> get a version
> > > hg update  --> well, just update...
>
> > > Although, by reading your commit script, I'd say you're pretty handy
> > > with mercurial API as it is.
>
> > > anyways, depends what you are looking to do... I can give you some
> > > quick and dirty recipes if you like, if it helps.
>
> > > Mart :)
>
> > > On Oct 24, 6:23 pm, Massimo Di Pierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > Hello everybody,
>
> > > > I am working on improving the web2py web interface to mercurial.
>
> > > >http://127.0.0.1:8000/admin/mercurial/commit
>
> > > > We can current create a repo, commit and get changelog but I cannot 
> > > > figure out how to do revert.
> > > > Here is the code I have:
>
> > > >    import os
> > > >    uio = ui.ui()
> > > >    uio.quiet = True
> > > >    if not os.environ.get('HGUSER') and not uio.config("ui", "username"):
> > > >        os.environ['HGUSER'] = 'web...@localhost'
> > > >    try:
> > > >        repo = hg.repository(ui=uio, path=path)
> > > >    except:
> > > >        repo = hg.repository(ui=uio, path=path, create=True)
>
> > > > given repo and a revision number from repo.changelog, how to I revert 
> > > > all files to that revision using the API?
>
> > > > Massimo
>
>

Reply via email to