k, items 1 and 2 should be simple enough.... item 3, that is a different story, but ok, sure. I think merging outside of the mercurial context is best though, then simply update the remote repository with the merged file (and include good notes describing both source files and capturing the diffs of the merge is best).
I will be under the gun at work for the next few days, but after that will be able to have something for you - by end of week is a good buffer. 1 question: how large of added disk space usage would you is acceptable - I have an idea that I will look into. (I always favor having less network IO, and more disk IO when possible). Let me know if end of week is good for you. Mart On Oct 24, 11:26 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > 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 > >