[Gsoc - 2016] Allow largefiles to be at a different location
Matt Harbison
mharbison72 at gmail.com
Mon Feb 29 22:05:57 EST 2016
On Mon, 29 Feb 2016 09:57:21 -0500, Piotr Listkiewicz
<piotr.listkiewicz at gmail.com> wrote:
> Hello,
> I am Piotr Listkiewicz (nicknamed liscju), Computer Science student from
> Cracow in Poland, maybe some of you remembers me from 3.6 Sprint in
> London.
>
> I am interested in working on "Allow largefiles to be at a different
> location" project, but i need guidance.
>
> First of all ,are there any easy bugs that you would recommend for the
> newcomer for largefile extension for familiarizing myself with the source
> code?
I don't think there are any easy bugs left. The wrapping done by the
extension can make things surprisingly complicated. There are a few
additional archived (hidden) largefile bugs on bz, but I'm not sure they
are easy either.
I'm not sure if there's a lot of teaching value in this, but maybe
consider replacing some of the os.path.* code in largefiles with the vfs
layer. There might be enough there that you can see how it looks up files
in the store, and so forth. If nothing else, it will give you something
to do when looking at the code.
https://www.mercurial-scm.org/wiki/WindowsUTF8Plan
This is more advanced, but would be nice to have in some form:
https://bz.mercurial-scm.org/show_bug.cgi?id=4242
(My recollection of this is that it wants to verify the files upstream on
the default path instead of touching anything locally. I think I end up
using '--config paths.default=' to force it to verify locally.)
> Secondly , are there any other documents that didn't mentioned at
> https://www.mercurial-scm.org/wiki/SummerOfCode/Ideas2016 that would be
> helpful for familiarizing myself with largefile and project subject in
> general?
The wiki is pretty good at a high level:
https://www.mercurial-scm.org/wiki/LargefilesExtension
The "magic" of this extension is mostly that it patches up the matcher
object and hands off to core Mercurial to do most of the work, in most
situations. e.g. if the user does `hg add --large foo`, the largefiles
add() code changes the matcher to contain '.hglf/foo', remove 'foo', and
then passes it into the core add() function. (All without touching normal
file references, if any, of course.)
Is there some specific area you are wondering about? Maybe look for
commits that start with 'largefiles:'. I fixed a series of bugs about a
year ago or so, and tried to leave enough in the commit comment to explain
what was wrong or how something works.
Unfortunately, I don't know anything about the wire protocol to help you
there.
> I would be interested in any piece of advice what should i do, how to
> start
> working on the project and all relevant information as well.
More information about the Mercurial-devel
mailing list