On Feb 15, 2011, at 5:50 PM, Daniel Johnson wrote: > I've been working on implementing selfupdate-git and have something > that people can play with if they'd like. (You'll need git installed > for this, of course.) > > git clone git://github.com/danielj7/fink.git > cd fink > git checkout selfupdate # that's where my branch is > ./bootstrap /sw-git # or wherever you want you fink to be > installed. PLEASE don't use your main /sw > > You then need to run 'fink selfupdate-git' but there is something > you need to do first. The selfupdate-git command will first look for > $basepath/bin/git (say /sw-git/bin/git) then /usr/bin/git (since a > future OS might come with it). If it finds neither, it'll quit, > telling you to 'fink install git'. You can also set GitPath in > fink.conf to another git, say in your main /sw, to override what > fink guesses. Whatever fink finally chooses will be saved in GitPath > and used from then on so that the same version is always used.
I'm still a little new at the whole Fink bootstrap process, but at first I missed the detail that $basepath is *not* the checked-out git working copy. No worries, just a hint for others trying this for the first time. > Once you've used selfupdate-git once, regular selfupdate will > continue pulling updates with git. Note that it's currently set to > use my copy of the fink/dists repo at > http://github.com/danielj7/fink-dists.git > . This is NOT an official repo so don't trust it for normal use. I'm > keeping it updated from the cvs one, though I'm running the update > manually when I notice changes. Since it's my repo, you can't get > read/write access to it, of course. :) So always pick anonymous > access when fink asks. Also try switching between the different > selfupdate methods to make sure switching works. It seems to in my > testing. Just for fun, I tried cloning ("forking") your repo. Is there a way to specify another repo up front, or should I just add my clone as a remote later? (I don't mind rebasing any local changes if you decide to blow yours away and re-import.) Also, is there an equivalent of git-svn's "dcommit" where I could make changes in my local Git repository, then commit back to the upstream non-Git repository? or are the git-to-cvs tools import only? This small issue might be related to not following your directions on choosing "anonymous", but using the default verbosity settings, I get this error when running "fink selfupdate-git" for the first time: ... Checking to see if we can use hard links to merge the existing tree. Please ignore errors on the next few lines. Setting up base Fink directory... /usr/bin/su clepple -c '/sw/bin/git --quiet clone g...@github.com:danielj7/fink-dists.git fink' Unknown option: --quiet usage: git [--version] [--exec-path[=<path>]] [--html-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [-c name=value] [--help] <command> [<args>] ### execution of /usr/bin/su failed, exit code 129 Failed: Downloading package descriptions from git failed. > I've also updated my preliminary selfupdate-svn command to work > using the same repo too. I'm not sure how useful it is since GitHub > supports git over http. It does mean that people with 10.5 and later > don't need to install anything else but it's MUCH slower than git. > > Another thing to note is that unlike cvs (or svn) git doesn't allow > you to checkout one directory within a repo; it's all or nothing. > That means that selfupdate-git (and -svn since it's using the git > repo) ignores the SelfupdateTrees setting and downloads all the > trees. We could certainly remove the old trees in the final repo, > but I left them in for now so we get all the history. Thinking about the bootstrapping case (10.5 and later), would it be difficult to have the -svn option just check out the current tree? That could help speed things up. Or is the speed issue on the GitHub side, since the SVN proxy server would have to virtually check out the git tree? If I understand the "point release" selfupdate method, would it be possible to just create a new point release that includes the git.info file? Let me know if there's anything else that you would like help testing. -- Charles Lepple A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing on usenet and in e-mail? ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel