Re: mr: Lazy processing of repositories
Joey Hess wrote: > Svend Sorensen wrote: > > How do I force mr to checkout a lazy repo? 'mr checkout' seems to ignore any > > arguments, so 'mr checkout repo' skips repos that have 'skip = lazy'. If I > > manually create the repo directory, mr thinks the repo is already checked > > out. > > Yes, this is a use case for mr checkout somehow taking a parameter, or > for the stuff that Adam has been talking about to let mr be told which > repos to act on. Actually, this already works: mr -d foo checkout -- see shy jo signature.asc Description: Digital signature ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: Lazy processing of repositories
Svend Sorensen wrote: > How do I force mr to checkout a lazy repo? 'mr checkout' seems to ignore any > arguments, so 'mr checkout repo' skips repos that have 'skip = lazy'. If I > manually create the repo directory, mr thinks the repo is already checked out. Yes, this is a use case for mr checkout somehow taking a parameter, or for the stuff that Adam has been talking about to let mr be told which repos to act on. -- see shy jo signature.asc Description: Digital signature ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: Lazy processing of repositories
On Thu, Nov 03, 2011 at 01:56:53PM -0400, Joey Hess wrote: > > Good idea! In mr git, you can now use skip = lazy to get this behavior. Thanks for implementing this feature! > The lazy shell function is built into mr, but this shows how it works: > > lazy() { > if [ "$MR_ACTION" = checkout ] || [ -d "$MR_REPO" ]; then > return 1 > else > return 0 > fi > } I can't get this to work. (Maybe I'm using it incorrectly.) How do I force mr to checkout a lazy repo? 'mr checkout' seems to ignore any arguments, so 'mr checkout repo' skips repos that have 'skip = lazy'. If I manually create the repo directory, mr thinks the repo is already checked out. Svend ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: Lazy processing of repositories
Svend Sorensen wrote: > I'm using mr to manage the repositories for the various software that I > track. However, I don't want to check out all the repos by default. (The > list is getting long). I also don't want to make a modification to the > .mrconfig each time I want to check out a repo. (E.g. have 'skip = true' > on all repos, and remove the skip if I decide to check out a repo.) > > I'm looking for a way to do lazy checkouts and updates. A lazy repo > would not be checked out unless I run a command to tell mr to check out > the repo. (Something like mr checkout foo.) After I force mr to check > out a lazy repo, mr would act on the repo for future mr runs. > > One way to do this is to have skip check for the existence of a > different file for each repo. Creating the file would activate the repo. > Any ideas for a better approach? Good idea! In mr git, you can now use skip = lazy to get this behavior. The lazy shell function is built into mr, but this shows how it works: lazy() { if [ "$MR_ACTION" = checkout ] || [ -d "$MR_REPO" ]; then return 1 else return 0 fi } -- see shy jo signature.asc Description: Digital signature ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: chaining to absolute paths
Adam Spiers wrote: > > > - Do you track your mrconfig files with version control? > > > > yes > > How do you do that? Are they all in one repo? How do you get each > one into the right subdirectory of ~ ? They're checked out by mr as part of the repositories that provide the subdirectories they're in. -- see shy jo signature.asc Description: Digital signature ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
mr: Lazy processing of repositories
I'm using mr to manage the repositories for the various software that I track. However, I don't want to check out all the repos by default. (The list is getting long). I also don't want to make a modification to the .mrconfig each time I want to check out a repo. (E.g. have 'skip = true' on all repos, and remove the skip if I decide to check out a repo.) I'm looking for a way to do lazy checkouts and updates. A lazy repo would not be checked out unless I run a command to tell mr to check out the repo. (Something like mr checkout foo.) After I force mr to check out a lazy repo, mr would act on the repo for future mr runs. One way to do this is to have skip check for the existence of a different file for each repo. Creating the file would activate the repo. Any ideas for a better approach? Svend ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: chaining to absolute paths
On Thu, Nov 03, 2011 at 12:22:48PM -0400, Joey Hess wrote: > Adam Spiers wrote: > > On Wed, Nov 02, 2011 at 05:02:13PM -0400, Joey Hess wrote: > > > Adam Spiers wrote: > > > > I notice that chaining to absolute paths does not work, e.g.: > > > > Is this a feature or a bug? I would have thought it would be useful > > > > to chain to absolute paths. > > > > > > Probably because nobody noticed since when you're in ~/foo/bar, > > > ~/foo/bar/.mrconfig will be read anyway without chaining. > > I probably meant to say ~/foo/.mrconfig fwiw. Ah, OK. [snipped] > > I guess it would really help me if one or two people would be kind > > enough to briefly describe the way they use mr, e.g. > > > > - How is your home directory structured, i.e. where do your mrconfig > > files and repos live within it, and which mrconfig files point to > > which repos? > > Sure: [snipped] Thanks, this is really useful! > > - Do you track your mrconfig files with version control? > > yes How do you do that? Are they all in one repo? How do you get each one into the right subdirectory of ~ ? > > - Do you frequently use the -d or -c options? > > never > > > - Do you usually cd to a particular directory before running mr, and > > if so, why? > > I always run mr in the directory I want to affect. Sometimes this > directory contains many repositories, sometimes only one. The point of > mr is I don't need to care how many underlying repositories there are. > If I run it in ~/src/d-i, I want to act on d-i; in > ~/src/d-i/package/main-menu I'm only dealing with one package; in ~/src > I want to act on all my source repos. Very helpful and food for thought, thanks again. ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: chaining to absolute paths
Adam Spiers wrote: > On Wed, Nov 02, 2011 at 05:02:13PM -0400, Joey Hess wrote: > > Adam Spiers wrote: > > > I notice that chaining to absolute paths does not work, e.g.: > > > Is this a feature or a bug? I would have thought it would be useful > > > to chain to absolute paths. > > > > Probably because nobody noticed since when you're in ~/foo/bar, > > ~/foo/bar/.mrconfig will be read anyway without chaining. I probably meant to say ~/foo/.mrconfig fwiw. > I'm beginning to suspect that the way I imagine using mr is > fundamentally different to everyone else's way. Your previous point > about mr working best with locality of reference (i.e. each .mrconfig > being in a parent or near ancestor of the directories containing the > repos it manages) also contributed to this suspicion. I can > understand how that makes for clean .mrconfig files with short > relative paths in the section headers, but I can't understand how you > could then version control all your .mrconfig files and share them > across computers. And if you can't, then doesn't that discard a very > large part of the advantage of using mr in the first place? > > I guess it would really help me if one or two people would be kind > enough to briefly describe the way they use mr, e.g. > > - How is your home directory structured, i.e. where do your mrconfig > files and repos live within it, and which mrconfig files point to > which repos? Sure: ~ .mrconfig doc .mrconfig (various document repositories) src .mrconfig (many package sources) d-i .mrconfig lib/backup .mrconfig (only exists on a few machines, various repositories) > - How many mrconfig files and mr-managed repos do you have? 190 repos, mostly in src > - Do you track your mrconfig files with version control? yes > - Do you frequently use the -d or -c options? never > - Do you usually cd to a particular directory before running mr, and > if so, why? I always run mr in the directory I want to affect. Sometimes this directory contains many repositories, sometimes only one. The point of mr is I don't need to care how many underlying repositories there are. If I run it in ~/src/d-i, I want to act on d-i; in ~/src/d-i/package/main-menu I'm only dealing with one package; in ~/src I want to act on all my source repos. -- see shy jo signature.asc Description: Digital signature ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home
Re: mr: chaining to absolute paths
On Wed, Nov 02, 2011 at 05:02:13PM -0400, Joey Hess wrote: > Adam Spiers wrote: > > I notice that chaining to absolute paths does not work, e.g.: > > Is this a feature or a bug? I would have thought it would be useful > > to chain to absolute paths. > > Probably because nobody noticed since when you're in ~/foo/bar, > ~/foo/bar/.mrconfig will be read anyway without chaining. But ~/foo/bar is just a single repo, so if that's already your current working directory, wouldn't you just end up invoking git (or whatever) directly instead? I'm beginning to suspect that the way I imagine using mr is fundamentally different to everyone else's way. Your previous point about mr working best with locality of reference (i.e. each .mrconfig being in a parent or near ancestor of the directories containing the repos it manages) also contributed to this suspicion. I can understand how that makes for clean .mrconfig files with short relative paths in the section headers, but I can't understand how you could then version control all your .mrconfig files and share them across computers. And if you can't, then doesn't that discard a very large part of the advantage of using mr in the first place? I guess it would really help me if one or two people would be kind enough to briefly describe the way they use mr, e.g. - How is your home directory structured, i.e. where do your mrconfig files and repos live within it, and which mrconfig files point to which repos? - How many mrconfig files and mr-managed repos do you have? - Do you track your mrconfig files with version control? - Do you frequently use the -d or -c options? - Do you usually cd to a particular directory before running mr, and if so, why? To me, it's important that a tool like mr can act on an arbitrary list of repositories regardless of my current working directory. In other words, I'd rather choose which repositories mr should act on via the parameters I'm invoking mr with, rather than by cd'ing to a particular directory, running mr, then potentially having to repeat the cd + mr steps multiple times. > And there's rarely a reason to use an absolute path. I can't see how to accomplish what I need without them. Hopefully answers to the above questions would help me realise what I'm missing. > Fixed in git. Great, thanks! ___ vcs-home mailing list vcs-home@lists.madduck.net http://lists.madduck.net/listinfo/vcs-home