Note that long path issue on Windows is supposedly fixed in git 1.9.

On Thu, Jun 20, 2013 at 9:42 AM, Ecaterina Moraru (Valica)
<[email protected]> wrote:
> Linking the issue in case someone will work on this in the future
> http://jira.xwiki.org/browse/XWIKI-8275
>
> Thanks,
> Caty
>
> On Wed, May 22, 2013 at 1:55 PM, Thomas Mortagne
> <[email protected]>wrote:
>
>> So here are the winners on platform/XE master:
>>
>>
>> xwiki-platform-core/xwiki-platform-administration/xwiki-platform-administration-test/xwiki-platform-administration-test-tests/target/smartgwt/com/smartclient/theme/enterpriseblue/public/sc/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif
>> (270)
>>
>>
>> xwiki-enterprise-installers/xwiki-enterprise-installer-generic/target/container/xwiki-enterprise-jetty-hsqldb-5.1-SNAPSHOT/data/extension/repository/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui/5.1-SNAPSHOT/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui-5.1-SNAPSHOT.xed
>> (296)
>>
>> which gives after refactoring
>>
>>
>> core/administration/test/tests/target/smartgwt/com/smartclient/theme/enterpriseblue/public/sc/skins/EnterpriseBlue/images/Progressbar/progressbar_Disabled_v_empty_stretch.gif
>> (174)
>>
>>
>> installers/generic/target/container/xwiki-enterprise-jetty-hsqldb-5.1-SNAPSHOT/data/extension/repository/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui/5.1-SNAPSHOT/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui-5.1-SNAPSHOT.xed
>> (252)
>>
>> On Tue, May 21, 2013 at 11:54 AM, Vincent Massol <[email protected]>
>> wrote:
>> > FTR Thomas and I have discussed this a bit and one thing Thomas has
>> started checking is the longest path we currently have.
>> >
>> > One that we have found is:
>> >
>> >
>> /Users/vmassol/dev/xwiki/git/xwiki-platform/xwiki-platform-core/xwiki-platform-ircbot/xwiki-platform-ircbot-test/xwiki-platform-ircbot-test-tests/target/xwiki-enterprise-jetty-hsqldb-5.0.2-SNAPSHOT/data/extension/repository/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui/5.0.2-SNAPSHOT/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui-5.0.2-SNAPSHOT.xar
>> >
>>
>> Note that this kind of path does not exist, looks like you extracted a
>> XE in your platform project for test purpose. The actual test data is
>> extracted in
>> /Users/vmassol/dev/xwiki/git/xwiki-platform/xwiki-platform-core/xwiki-platform-ircbot/xwiki-platform-ircbot-test/wiki
>> and /data/extension/repository is empty.
>>
>> > That's 375 characters
>> >
>> > With the new rule that would be:
>> >
>> >
>> /Users/vmassol/dev/xwiki/git/xwiki-platform/core/ircbot/test/test-tests/target/xwiki-enterprise-jetty-hsqldb-5.0.2-SNAPSHOT/data/extension/repository/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui/5.0.2-SNAPSHOT/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui-5.0.2-SNAPSHOT.xar
>> >
>> > That's still 301 characters.
>> >
>> > Thomas has done an extensive search and he'll be able to give more
>> details on other long paths.
>> >
>> > Also note that we have an issue at runtime with too long paths:
>> >
>> > [2/11/13 1:22:10 PM] Ionut Maxim: !
>> C:\Users\max\Downloads\xwiki-enterprise-jetty-hsqldb-4.5-rc-1.zip: The
>> archive is corrupt
>> > !   C:\Users\max\Downloads\xwiki-enterprise-jetty-hsqldb-4.5-rc-1.zip:
>> The archive is corrupt
>> > ...
>> > !   C:\Users\max\Downloads\xwiki-enterprise-jetty-hsqldb-4.5-rc-1.zip:
>> Cannot create
>> xwiki-enterprise-jetty-hsqldb-4.5-rc-1\data\extension\repository\org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui\4.5-rc-1\org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui-4.5-rc-1.xed
>> >     Total path and file name length must not exceed 260 characters
>> >
>> > What we could do to solve both problems would be to reduce the path
>> length used by the EM to store metadata. For example:
>> >
>> >
>> /Users/vmassol/dev/xwiki/git/xwiki-platform/core/ircbot/test/test-tests/target/xwiki-enterprise-jetty-hsqldb-5.0.2-SNAPSHOT/data/extension/repository/org.xwiki.platform%3Axwiki-platform-rendering-wikimacro-ui/5.0.2-SNAPSHOT/artifact.xar
>> >
>> > which gives 236 chars. Still pretty close so another solution would be
>> to use some random directory names (since the names are not used by the EM):
>> >
>> >
>> /Users/vmassol/dev/xwiki/git/xwiki-platform/core/ircbot/test/test-tests/target/xwiki-enterprise-jetty-hsqldb-5.0.2-SNAPSHOT/data/extension/repository/dfdsf4fszz3lmbf567/artifact.xar
>> >
>> > which would be around 200 chars.
>> >
>> > Now what would be interesting would be to give indications to xwiki
>> builders and xwiki users as to what is the max path prefix they're allowed
>> to use for xwiki to build/work. In my example below I'm using
>> "/Users/vmassol/dev/xwiki/git" chars (i.e. 28 chars).
>> >
>> > Thanks
>> > -Vincent
>> >
>> > On May 16, 2013, at 7:02 PM, Sergiu Dumitriu <[email protected]> wrote:
>> >
>> >> On 05/16/2013 12:16 PM, Vincent Massol wrote:
>> >>>
>> >>> On May 16, 2013, at 6:09 PM, Vincent Massol <[email protected]>
>> wrote:
>> >>>
>> >>>>
>> >>>> On May 16, 2013, at 5:29 PM, Sergiu Dumitriu <[email protected]>
>> wrote:
>> >>>>
>> >>>>> On 05/16/2013 10:54 AM, Vincent Massol wrote:
>> >>>>>>
>> >>>>>> On May 16, 2013, at 4:47 PM, Thomas Mortagne <
>> [email protected]> wrote:
>> >>>>>>
>> >>>>>>> On Thu, May 16, 2013 at 4:25 PM, Vincent Massol <
>> [email protected]> wrote:
>> >>>>>>>> I'm rather -0 ATM and very close to -1 because:
>> >>>>>>>>
>> >>>>>>>> 1) I haven't heard from a windows dev for a long time, I don't
>> think that happens that often
>> >>>>>>>
>> >>>>>>> And it's surely not going to improve...
>> >>>>>>>
>> >>>>>>>>
>> >>>>>>>> 2) It's a *huge* change and it should definitely not be done
>> lightly. We would need to plan a period like 2 full days, all devs would
>> need to stop working on what they do and help out. For example all pages on
>> xwiki.org having some github links are going to be broken and will need
>> to be updated (that's probably around hunded of pages overall)
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>> Yes it's a huge change, that's why it's a vote.
>> >>>>>>>
>> >>>>>>>> 3) Windows devs have a simple solution which is to use cygwin so
>> it's not a blocker
>> >>>>>>>
>> >>>>>>> It's not as trivial as you seems to think and it also mean that you
>> >>>>>>> simply can't use the standard git tools in the Windows world like
>> the
>> >>>>>>> Github application or Tortoisegit without speaking or any EDI git
>> >>>>>>> integration... so not it really can't be seen as some obvious
>> >>>>>>> solution. And it's not like using Cygwin was some king of standard
>> for
>> >>>>>>> Windows dev. "use cyggwin" is easy to say but the reality is that a
>> >>>>>>> dev will try to clone XWiki repository with the git tool he is
>> used to
>> >>>>>>> and will simply can't, period.
>> >>>>>>
>> >>>>>> What I'm saying is that I don't think it's worth the effort. By
>> worth I mean the ratio between the effort and problems it'll require from
>> us vs the # of windows dev not using cygwin that'll want to develop for the
>> xwiki project...
>> >>>>>
>> >>>>> But this is why we have a democracy and not a dictatorship. If the
>> >>>>> community considers it is worth the effort, and at least some devs
>> are
>> >>>>> willing to work on this, then I think it's their right to do this.
>> >>>>
>> >>>> 1) You should re-read the governance. It's a meritocracy, i.e we vote
>> important changes and devs need to be ok. So if one or a few devs want to
>> do this but some other don't for some valid reason then it's not going to
>> happen until we reach a decision.
>> >>>>
>> >>>> 2) It's all the devs that will bear the cost of maintaining the new
>> environment, no just the dev who's willing to do the initial work.
>> >>>>
>> >>>> BTW none of us work on a windows environment and I think it's a bad
>> idea to implement support for something that we never use. It can only lead
>> to something that gets broken frequently. To overcome this we'd need some
>> windows agent and this means supporting that agent and making sure it works
>> all the time (we tried in the past and failed for a very simple reason:
>> none of the devs use windows and thus we don't care).
>> >>>>
>> >>>>> It's not a good move to veto the will of the community.
>> >>>>
>> >>>> Again (in case you didn't understand) I'm ok on the principle of
>> doing this move but doing cowboy-coding without thinking about the
>> consequences and letting other fix your stuff by only doing half of the
>> work isn't my preferred style...
>> >>>>
>> >>>> We've had enough bad examples of the dev environment being broken for
>> week(s not so long ago that it's normal to want to be careful...
>> >>>>
>> >>>>> Anyway, there are other reasons to make the change, not just Windows
>> >>>>> compatibility. It saves about 2 seconds each time a dev wants to go
>> to a
>> >>>>> directory from the command line. Going into one subdirectory means
>> >>>>> having to press "x tab <right prefix of the submodule> tab". The
>> first
>> >>>>> two keys are superfluous since they're the same all the time. The
>> deeper
>> >>>>> the hierarchy, the longer the time it takes to go there. It adds up
>> to
>> >>>>> more than an hour wasted per year per dev, and I don't think it will
>> >>>>> really take a whole month of every dev to do the migration. If
>> everybody
>> >>>>> contributes and we do a systematic effort, it could be done in an
>> hour
>> >>>>> with the right planning.
>> >>>>
>> >>>> So to reiterate and to be constructive, before we start any actual
>> work on this I'd like that we do more evaluation. This means:
>> >>>> * see a list of windows coders who have expressed a need (apart from
>> Florin who I know already) and who have a real will to participate after
>> the move. Do we have at least one?
>> >>
>> >> This is not just about Windows. The committers that vote +1 vote for
>> >> their own environment, not just to fix a problem for hypothetical
>> >> contributors.
>> >>
>> >> And it's not about improving something for existing contributors, but
>> >> removing a blocker standing in the way of future contributors. The
>> >> easier it is for a new potential community member to join, the more of
>> >> these tentative users will actually stick around. And XWiki isn't
>> >> overwhelmed by the number of contributors to afford to voluntarily keep
>> >> out those not motivated enough to actually try to find out why the
>> >> checkout fails and what needs to be done to actually have a working
>> >> environment and go through all the painful process of installing cygwin
>> >> and the the command line tools that work with cygwin.
>> >>
>> >>>> * that we list what needs to be done precisely. I've identified some
>> so far:
>> >>>> ** the git path changes
>> >>>> ** modify all the xwiki.org pages linking to code
>> >>>> ** git history, will we loose ability to see history of files?
>> >>
>> >> Not really. In some cases we might have to add --find-copies-harder to
>> >> some commands, but it should work out of the box for most files.
>> >>
>> >> Viewing the commits that affect a file on GitHub might not list pre-move
>> >> commits, but the history will s
>> >>
>> >>>> ** others?
>> >>
>> >> * The move will break uncommitted local changes, so all devs should try
>> >> to commit their local changes, at least in a separate local branch if
>> >> not on github. But devs shouldn't keep uncommitted changes anyway,
>> right?
>> >>
>> >> * Depending on how they're configured, our IDEs might freak out when
>> >> pulling for the first time, since everything will be moved around.
>> >>
>> >> * Existing pull request should still work, but Jira patches will break;
>> >> they're probably broken already anyway, since we didn't really allow new
>> >> patches to be put there for a while, and most of the paths have changed
>> >> since 1-2 years ago.
>> >>
>> >> * Does anything on Jenkins depend on paths? I hope not, configurations
>> >> use module names, and they will continue to point to the right POM.
>> >>
>> >> * I guess this still counts as xwiki.org changes, but we should make
>> >> sure the pages that work with remote files, like the syntax
>> >> documentation and syntax completion report, will also need to be
>> updated.
>> >>
>> >> * Existing links in emails (and other places with answers like
>> >> stackoverlow) will be broken, but that already happens whenever we move
>> >> a module, for example to make room for api+ui+test submodules, and this
>> >> happened a lot recently, so it's not a new problem.
>> >>
>> >> * Most annoying: forgetting our own reflex of typing x+tab when changing
>> >> the path :-)
>> >>
>> >>> ** what happens to the JIRA links to commits in the Commits tab? Will
>> they still work?
>> >>
>> >> Yes, the existing commits will not change.
>> >>
>> >>> Thanks
>> >>> -Vincent
>> >>>
>> >>>> * to list who is ok to participate actively in the move
>> >>>> * that we agree on a date so that it doesn't impact our planned
>> roadmap
>> >>>>
>> >>>> Thanks
>> >>>> -Vincent
>> >>>>
>> >>>>>> We're going to loose at least a month before we've finished that
>> migration completely and I'm really worried about the toll it'll have on
>> our releases...
>> >>>>>>
>> >>>>>> Thanks
>> >>>>>> -Vincent
>> >>>>>>
>> >>>>>> PS: With the same group effort we could release a first version of
>> the new model for example ;)
>> >>>>>>
>> >
>> > _______________________________________________
>> > devs mailing list
>> > [email protected]
>> > http://lists.xwiki.org/mailman/listinfo/devs
>>
>>
>>
>> --
>> Thomas Mortagne
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to