From: Shawn O. Pearce Date: Mon, 08 Sep 2008 22:36:01 GMT Subject: Re: fast-import issues with monotone Message-ID: <20080908223601.GB14448@spearce.org> In-Reply-To: <94a0d4530809081530p60ff8692qbf9c314516d03869@mail.gmail.com> Felipe Contreras wrote: > I'm stuck with yet another issue while trying to export a mtn > repository, so I thought on sharing the list of issues: > > a) directory rename/deletes are indistinguishable from files Hmm. I had thought fast-import allowed you to rename or delete a directory by just name its path. Internally it should be cascading those operations to all of the contained children. > b) file mode changes are just like any other operation (you don't get > the mode at each revision) > > This means the file mode needs to be tracked all the time. Also, it > means the file contents (blob) needs to be tracked because sometimes > the only change in the file is the mode. Ow. I could see a special case being introduced into the language as placeholders for the fields, telling gfi not to replace the data if it is already present. Probably not even a very difficult patch to add. E.g. make "-" a placeholder for both mode and content SHA-1/mark. > For these two issues the only viable solution is to keep track of the > whole tree of each revision. Does it makes sense to do that? Or would > it make more sense to modify fast-import to allow more delta-oriented > operations? Most frontends do keep track of everything. The CVS->Git and CVS->SVNish->Git keep track of everything just so they can order things across files to form commits/changesets. -- Shawn.