{"thread":{"id":"30103","subject":"top-level gitignore considered harmful","startedAt":"2012-03-29T21:11:36Z","lastAt":"2012-03-30T09:30:27Z","messageCount":3,"participants":["Jeff King","Junio C Hamano","Tomas Carnecky"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"188097","messageId":"20120329211136.GA1112@sigill.intra.peff.net","threadId":"30103","inReplyTo":null,"subject":"top-level gitignore considered harmful","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-03-29T21:11:36Z","receivedAt":"2012-03-29T21:11:36Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"So we were sitting around chatting today about how slow \"git status\" is\nin the gigantic WebKit repository (because really, what else would one\nchat about?). Carlos noticed that git spends a lot of time in the\ngitignore code path.  It turns out that the WebKit repository has a\ncouple hundred excludes in the top-level .gitignore, many of which are\nfor specific files deep in the repository.\n\nSince these patterns are compared via fnmatch(), we have to process them\nlinearly for each entry[1]. And since the patterns are at the top level,\nwe check them for each of the ~180,000 files in the repository. So \"git\nstatus\" will do O(m*n) work, where \"m\" is the number of patterns and \"n\"\nis the number of files in the repository. And as a project grows over\ntime, one might expect \"m\" to be some constant factor of \"n\". So this is\nreally O(n^2) (albeit with some mitigating constant at the front).\n\nAll of which is to say: things can be made much faster by pushing the\npatterns to their respective sub-directories, because git is smart\nenough not to even look at patterns from other sub-directories. With the\npatch below to WebKit, rearranging its .gitignore and .gitattributes\nentries, I measured the following speedup for \"git status\" (warm cache,\nbest-of-five):\n\n  before:\n  real    0m1.365s\n  user    0m0.996s\n  sys     0m0.364s\n  \n  after:\n  real    0m0.847s\n  user    0m0.520s\n  sys     0m0.320s\n\nNone of this should be too surprising to anybody who has looked at the\ngitignore code. But I was a little surprised by the magnitude of the\nspeedup. So I figured it was worth mentioning here as a case study.\n\nI'm not going to push this patch forward to WebKit myself. I don't work\non it, and the split of the gitattributes and gitignore files in the\npatch was purely mechanical (converting .gitignore:foo/bar/baz into\nfoo/bar/.gitignore:baz). Somebody more familiar with the project would\nprobably want to group the entries in a more logical way for the project\n(e.g., foo/.gitignore:bar/baz).\n\n-Peff\n\n[1] So obviously this is about something that projects can do to help\n    git run faster on them. But we could do better in git, too. fnmatch\n    patterns need to be examined linearly because of wildcards. But\n    many patterns don't have wildcards, or the wildcards come much later\n    in the pattern. There's no reason we couldn't preprocess the\n    patterns into a data structure with fast lookup properties, grouped\n    by non-wildcard prefixes (so seeing \"foo/bar/*.baz\", we could build\n    a trie that lets us reject \"other/directory\" after only a\n    single-character match).\n\n---\nThis is the patch against WebKit:\n\ndiff --git a/.gitattributes b/.gitattributes\nindex 95ca4eb..af87a9a 100644\n--- a/.gitattributes\n+++ b/.gitattributes\n@@ -18,228 +18,3 @@ Tools/WebKitLauncher/*.h diff=objcppheader\n *.vcproj eol=crlf\n *.vsprops eol=crlf\n *.sln eol=crlf\n-\n-LayoutTests/dom/svg/level3/xpath/Attribute_Nodes.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Attribute_Nodes_xmlns.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Comment_Nodes.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_Expressions.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_ID.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_hasFeature_3.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_hasFeature_empty.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_hasFeature_null.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_isSupported_3.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_isSupported_empty.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Conformance_isSupported_null.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Element_Nodes.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Processing_Instruction_Nodes.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/Text_Nodes.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluatorCast01.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createExpression_INVALID_EXPRESSION_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createExpression_NAMESPACE_ERR_01.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createExpression_NAMESPACE_ERR_02.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createExpression_NS.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createExpression_no_NS.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createNSResolver_all.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createNSResolver_document.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_createNSResolver_documentElement.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_INVALID_EXPRESSION_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_NAMESPACE_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_NOT_SUPPORTED_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_TYPE_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_WRONG_DOCUMENT_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_document.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_documentElement.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathExpression_evaluate_NOT_SUPPORTED_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathExpression_evaluate_WRONG_DOCUMENT_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathExpression_evaluate_document.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathExpression_evaluate_documentElement.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathNSResolver_lookupNamespaceURI_nist_dmstc.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathNSResolver_lookupNamespaceURI_null.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathNSResolver_lookupNamespaceURI_prefix.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathNSResolver_lookupNamespaceURI_xml.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_TYPE_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_booleanValue_false.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_booleanValue_true.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_ANY_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_ANY_UNORDERED_NODE_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_BOOLEAN_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_FIRST_ORDERED_NODE_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_NUMBER_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_ORDERED_NODE_ITERATOR_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_ORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_STRING_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_UNORDERED_NODE_ITERATOR_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_invalidIteratorState_UNORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_iterateNext_INVALID_STATE_ERR.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_iteratorNext_ORDERED_NODE_ITERATOR_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_numberValue.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_resultType.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_singleNodeValue_ANY_UNORDERED_NODE_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_singleNodeValue_FIRST_ORDERED_NODE_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_snapshotItem_ORDERED_NODE_SNAPSHOT_TYPE_null.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_snapshotItem_ORDERED_NODE_SNAPSHOT_TYPE_order.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_snapshotItem_UNORDERED_NODE_SNAPSHOT_TYPE_count.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_snapshotItem_UNORDERED_NODE_SNAPSHOT_TYPE_null.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_snapshotLength_ORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_snapshotLength_UNORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n-LayoutTests/dom/svg/level3/xpath/XPathResult_stringValue.svg -crlf\n-LayoutTests/editing/execCommand/align-in-span.html -crlf\n-LayoutTests/editing/selection/drag-start-event-client-x-y.html -crlf\n-LayoutTests/fast/backgrounds/background-position-rounding.html -crlf\n-LayoutTests/fast/backgrounds/repeat/resources/background-repeat-shorthand.js -crlf\n-LayoutTests/fast/backgrounds/repeat/resources/margin-shorthand.js -crlf\n-LayoutTests/fast/block/float/clamped-right-float.html -crlf\n-LayoutTests/fast/block/positioning/absolute-with-html-border-quirks.html -crlf\n-LayoutTests/fast/block/positioning/absolute-with-html-border-strict.html -crlf\n-LayoutTests/fast/canvas/script-tests/canvas-gradient-without-path.js -crlf\n-LayoutTests/fast/css/color-quirk.html -crlf\n-LayoutTests/fast/css/color-strict.html -crlf\n-LayoutTests/fast/css/css1_forward_compatible_parsing.html -crlf\n-LayoutTests/fast/css/empty-pseudo-class.html -crlf\n-LayoutTests/fast/css/first-child-pseudo-class.html -crlf\n-LayoutTests/fast/css/first-of-type-pseudo-class.html -crlf\n-LayoutTests/fast/css/last-child-pseudo-class.html -crlf\n-LayoutTests/fast/css/last-of-type-pseudo-class.html -crlf\n-LayoutTests/fast/css/only-child-pseudo-class.html -crlf\n-LayoutTests/fast/css/only-of-type-pseudo-class.html -crlf\n-LayoutTests/fast/css/text-input-with-webkit-border-radius.html -crlf\n-LayoutTests/fast/dom/Document/open-with-pending-load.html -crlf\n-LayoutTests/fast/dom/Element/hostname-host.html -crlf\n-LayoutTests/fast/dom/StyleSheet/ownerNode-lifetime-2.html -crlf\n-LayoutTests/fast/dom/Window/window-property-clearing-expected.txt -crlf\n-LayoutTests/fast/dom/everything-to-string.html -crlf\n-LayoutTests/fast/dom/insert-span-into-long-text-bug-28245.html -crlf\n-LayoutTests/fast/dom/resources/TestApplet.java -crlf\n-LayoutTests/fast/dom/simultaneouslyRegsiteredTimerFireOrder-expected.txt -crlf\n-LayoutTests/fast/dom/timer-clear-interval-in-handler-and-generate-error.html -crlf\n-LayoutTests/fast/events/keydown-keypress-focus-change.html -crlf\n-LayoutTests/fast/events/node-event-anchor-lock.html -crlf\n-LayoutTests/fast/events/onload-fires-twice.html -crlf\n-LayoutTests/fast/events/set-event-in-another-frame.html -crlf\n-LayoutTests/fast/events/set-event-to-null.html -crlf\n-LayoutTests/fast/forms/resources/form-and-frame-interaction-retains-values-main.html -crlf\n-LayoutTests/fast/forms/resources/form-and-frame-interaction-retains-values-submit.html -crlf\n-LayoutTests/fast/forms/select-remove-option.html -crlf\n-LayoutTests/fast/forms/select-reset-multiple-selections-4-single-selection.html -crlf\n-LayoutTests/fast/forms/textfield-onchange-deletion.html -crlf\n-LayoutTests/fast/frames/frame-src-attribute.html -crlf\n-LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled -crlf\n-LayoutTests/fast/frames/javascript-url-as-framesrc-crash.html -crlf\n-LayoutTests/fast/frames/resources/iframe-scroll-page-up-down-1.html -crlf\n-LayoutTests/fast/frames/resources/iframe-scroll-page-up-down-2.html -crlf\n-LayoutTests/fast/frames/viewsource-attribute.html -crlf\n-LayoutTests/fast/inline/inline-padding-disables-text-quirk.html -crlf\n-LayoutTests/fast/loader/submit-form-while-parsing-1.xhtml -crlf\n-LayoutTests/fast/overflow/dynamic-hidden.html -crlf\n-LayoutTests/fast/parser/external-entities-in-xslt.xml -crlf\n-LayoutTests/fast/parser/external-entities.xml -crlf\n-LayoutTests/fast/parser/resources/external-entities.xsl -crlf\n-LayoutTests/fast/replaced/replaced-breaking.html -crlf\n-LayoutTests/fast/table/dynamic-cellpadding.html -crlf\n-LayoutTests/fast/table/fixed-table-with-percent-inside-percent-table.html -crlf\n-LayoutTests/fast/table/fixed-table-with-percent-width-inside-auto-table.html -crlf\n-LayoutTests/fast/table/fixed-table-with-percent-width-inside-extra-large-div.html -crlf\n-LayoutTests/fast/table/fixed-table-with-small-percent-width.html -crlf\n-LayoutTests/fast/table/rules-attr-dynchange1.html -crlf\n-LayoutTests/fast/table/rules-attr-dynchange2.html -crlf\n-LayoutTests/fast/text/international/thai-baht-space.html -crlf\n-LayoutTests/fast/text/resources/line-breaks-crlf.txt -crlf\n-LayoutTests/fast/text/text-large-negative-letter-spacing-with-opacity.html -crlf\n-LayoutTests/fast/text/text-letter-spacing.html -crlf\n-LayoutTests/http/tests/appcache/max-size.html -crlf\n-LayoutTests/http/tests/misc/location-test-xsl-style-sheet.xml -crlf\n-LayoutTests/http/tests/misc/resources/location-test-xsl-style-sheet.xsl -crlf\n-LayoutTests/http/tests/misc/single-character-pi-stylesheet.xhtml -crlf\n-LayoutTests/http/tests/misc/will-send-request-returns-null-on-redirect.html -crlf\n-LayoutTests/http/tests/navigation/no-referrer-reset.html -crlf\n-LayoutTests/http/tests/navigation/no-referrer-same-window.html -crlf\n-LayoutTests/http/tests/navigation/no-referrer-subframe.html -crlf\n-LayoutTests/http/tests/navigation/no-referrer-target-blank.html -crlf\n-LayoutTests/http/tests/navigation/resources/no-referrer-same-window-helper.php -crlf\n-LayoutTests/http/tests/security/isolatedWorld/events.html -crlf\n-LayoutTests/http/tests/security/isolatedWorld/resources/iframe.html -crlf\n-LayoutTests/http/tests/security/isolatedWorld/resources/userGestureEvents-second-window.html -crlf\n-LayoutTests/http/tests/security/isolatedWorld/userGestureEvents.html -crlf\n-LayoutTests/http/tests/security/resources/empty-svg.php -crlf\n-LayoutTests/platform/win/fast/events/panScroll-event-fired.html -crlf\n-LayoutTests/platform/win/fast/events/panScroll-image-no-scroll.html -crlf\n-LayoutTests/platform/win/fast/events/panScroll-imageMap-href-no-scroll.html -crlf\n-LayoutTests/platform/win/fast/events/panScroll-imageMap-noHref-scroll.html -crlf\n-LayoutTests/platform/win/fast/events/panScroll-nested-divs.html -crlf\n-LayoutTests/platform/win/fast/events/panScroll-no-iframe-jump.html -crlf\n-LayoutTests/platform/win/fast/events/panScroll-preventDefault.html -crlf\n-LayoutTests/svg/custom/marker-opacity.svg -crlf\n-LayoutTests/svg/custom/resources/graffiti.svg -crlf\n-LayoutTests/svg/custom/struct-use-09-b.svg -crlf\n-LayoutTests/svg/custom/svg-fonts-in-html.html -crlf\n-LayoutTests/svg/custom/use-events-crash.svg -crlf\n-LayoutTests/svg/custom/use-on-symbol-inside-pattern.svg -crlf\n-LayoutTests/svg/custom/use-setAttribute-crash.svg -crlf\n-LayoutTests/svg/custom/xml-stylesheet.svg -crlf\n-LayoutTests/tables/mozilla/bugs/bug119786.html -crlf\n-LayoutTests/tables/mozilla/bugs/bug222846.html -crlf\n-LayoutTests/tables/mozilla/bugs/bug275625.html -crlf\n-LayoutTests/tables/mozilla/images/aboutHeader.gif -crlf\n-LayoutTests/tables/mozilla/images/main-horizontal-scroll.gif -crlf\n-LayoutTests/tables/mozilla_expected_failures/bugs/bug101759.html -crlf\n-LayoutTests/tables/mozilla_expected_failures/bugs/bug14489.html -crlf\n-LayoutTests/tables/mozilla_expected_failures/images/aboutHeader.gif -crlf\n-LayoutTests/tables/mozilla_expected_failures/images/main-horizontal-scroll.gif -crlf\n-LayoutTests/wml/resources/enter-card-with-events.wml -crlf\n-LayoutTests/wml/resources/enter-first-card-with-events.wml -crlf\n-ManualTests/DOMContextMenuEvent.html -crlf\n-ManualTests/cursor-max-size.html -crlf\n-ManualTests/drag-with-div-or-image-as-data-image.html -crlf\n-ManualTests/empty-script-crash.html -crlf\n-ManualTests/remove-form-node-with-radio-buttons-crash.html -crlf\n-ManualTests/select-delete-item.html -crlf\n-ManualTests/textarea-caret-position-after-auto-spell-correct.html -crlf\n-PerformanceTests/PageLoad/svg/files/Harvey_Rayner.svg -crlf\n-PerformanceTests/PageLoad/svg/files/cacuts_02.svg -crlf\n-PerformanceTests/PageLoad/svg/files/crawfish2_ganson.svg -crlf\n-PerformanceTests/PageLoad/svg/files/france.svg -crlf\n-PerformanceTests/PageLoad/svg/files/mtsthelens.svg -crlf\n-PerformanceTests/PageLoad/svg/files/worldcup.svg -crlf\n-PerformanceTests/SunSpider/tests/parse-only/jquery-1.3.2.js -crlf\n-Source/WebCore/accessibility/AccessibilityAllInOne.cpp -crlf\n-Source/WebCore/bindings/js/JSExceptionBase.cpp -crlf\n-Source/WebCore/bindings/js/JSExceptionBase.h -crlf\n-Source/WebCore/inspector/Inspector.json -crlf\n-Source/WebCore/platform/chromium/SuddenTerminationChromium.cpp -crlf\n-Source/WebCore/platform/network/win/NetworkStateNotifierWin.cpp -crlf\n-Source/WebCore/platform/wx/wxcode/non-kerned-drawing.h -crlf\n-Source/WebCore/rendering/RenderThemeChromiumWin.h -crlf\n-Tools/BuildSlaveSupport/win/kill-old-processes -crlf\n-Tools/DumpRenderTree/cairo/PixelDumpSupportCairo.cpp -crlf\n-Tools/FindSafari/Safari.exe.manifest -crlf\n-Tools/MiniBrowser/win/MiniBrowser.rc -crlf\n-Tools/TestResultServer/index.yaml -crlf\n-Tools/WinLauncher/WinLauncher.h -crlf\n-Tools/record-memory-win/main.cpp -crlf\n-WebKit/chromium/src/EventListenerWrapper.cpp -crlf\n-WebKit/chromium/src/EventListenerWrapper.h -crlf\n-WebKit/chromium/src/WebEventListener.cpp -crlf\n-WebKit/chromium/src/WebEventListenerPrivate.cpp -crlf\n-WebKit/chromium/src/WebEventListenerPrivate.h -crlf\n-WebKit/gtk/po/sr.po -crlf\n-WebKit/gtk/po/sr@latin.po -crlf\n-WebKit/qt/tests/qwebframe/resources/testiframe.html -crlf\n-WebKit/qt/tests/qwebframe/resources/testiframe2.html -crlf\n-WebKit/win/COMPropertyBag.h -crlf\n-WebKit/win/COMVariantSetter.h -crlf\n-WebKit/win/Interfaces/IWebEmbeddedView.idl -crlf\n-WebKit/win/Interfaces/JavaScriptCoreAPITypes.idl -crlf\n-WebKit/win/WebCoreSupport/EmbeddedWidget.cpp -crlf\n-WebKit/win/WebCoreSupport/EmbeddedWidget.h -crlf\n-WebKit/win/WebCoreSupport/WebInspectorDelegate.h -crlf\n-WebKit/win/WebIconFetcher.cpp -crlf\n-WebKit/win/WebIconFetcher.h -crlf\n-Websites/planet.webkit.org/planet/LICENCE -crlf\n-Websites/webkit.org/blog/license.txt -crlf\n-Websites/webkit.org/blog/wp-config-sample.php -crlf\n-Websites/webkit.org/blog/wp-config.php -crlf\n-Websites/webkit.org/blog/wp-includes/images/crystal/license.txt -crlf\n-Websites/webkit.org/blog/wp-includes/js/scriptaculous/MIT-LICENSE -crlf\n-Websites/webkit.org/blog/wp-includes/js/swfupload/plugins/swfupload.speed.js -crlf\n-Websites/webkit.org/blog/wp-includes/js/tinymce/license.txt -crlf\n-Websites/webkit.org/perf/slickspeed/frameworks/DomQuery.js -crlf\ndiff --git a/.gitignore b/.gitignore\nindex f545cea..fac89dc 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -21,111 +21,15 @@ tags\n *~\n *.swp\n \n-# Ignore Chromium projects auto-generated from .gyp files:\n-Source/JavaScriptCore/JavaScriptCore.gyp/*.Makefile\n-Source/JavaScriptCore/JavaScriptCore.gyp/*.mk\n-Source/JavaScriptCore/JavaScriptCore.gyp/*.sln\n-Source/JavaScriptCore/JavaScriptCore.gyp/*.vcproj*\n-Source/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.xcodeproj\n-Source/ThirdParty/glu/*.Makefile\n-Source/ThirdParty/glu/*.mk\n-Source/ThirdParty/glu/*.sln\n-Source/ThirdParty/glu/*.vcproj\n-Source/ThirdParty/glu/glu.xcodeproj\n-Source/WTF/WTF.gyp/*.Makefile\n-Source/WTF/WTF.gyp/*.mk\n-Source/WTF/WTF.gyp/*.sln\n-Source/WTF/WTF.gyp/*.vcproj*\n-Source/WTF/WTF.gyp/WTF.xcodeproj\n-Source/WebCore/WebCore.gyp/*.Makefile\n-Source/WebCore/WebCore.gyp/*.mk\n-Source/WebCore/WebCore.gyp/*.rules\n-Source/WebCore/WebCore.gyp/*.sln\n-Source/WebCore/WebCore.gyp/*.tmp\n-Source/WebCore/WebCore.gyp/*.vcproj*\n-Source/WebCore/WebCore.gyp/WebCore.xcodeproj\n-Source/WebKit/chromium/*.Makefile\n-Source/WebKit/chromium/*.mk\n-Source/WebKit/chromium/*.sln\n-Source/WebKit/chromium/*.vcproj*\n-Source/WebKit/chromium/All.xcodeproj\n-Source/WebKit/chromium/WebKit.xcodeproj\n-Source/WebKit/chromium/WebKitUnitTests.xcodeproj\n-Source/Platform/Platform.gyp/*.Makefile\n-Source/Platform/Platform.gyp/*.mk\n-Source/Platform/Platform.gyp/*.sln\n-Source/Platform/Platform.gyp/*.vcproj*\n-Source/Platform/Platform.gyp/*.xcodeproj*\n-Tools/DumpRenderTree/DumpRenderTree.gyp/*.Makefile\n-Tools/DumpRenderTree/DumpRenderTree.gyp/*.mk\n-Tools/DumpRenderTree/DumpRenderTree.gyp/*.sln\n-Tools/DumpRenderTree/DumpRenderTree.gyp/*.vcproj*\n-Tools/DumpRenderTree/DumpRenderTree.gyp/*.xcodeproj*\n-Tools/TestWebKitAPI/TestWebKitAPI.gyp/*.Makefile\n-Tools/TestWebKitAPI/TestWebKitAPI.gyp/*.mk\n-Tools/TestWebKitAPI/TestWebKitAPI.gyp/*.sln\n-Tools/TestWebKitAPI/TestWebKitAPI.gyp/*.vcproj*\n-Tools/TestWebKitAPI/TestWebKitAPI.gyp/*.xcodeproj*\n-\n-\n-# Ignore status files that manage Chromium dependencies.\n-Source/WebKit/chromium/.gclient\n-Source/WebKit/chromium/.gclient_entries\n-\n-# Ignore Chromium dependencies\n-Source/WebKit/chromium/.gclient\n-Source/WebKit/chromium/.gclient_entries\n-Source/WebKit/chromium/base/\n-Source/WebKit/chromium/chromium_deps/\n-Source/WebKit/chromium/crypto/\n-Source/WebKit/chromium/depot_tools/\n-Source/WebKit/chromium/dbus/\n-Source/WebKit/chromium/gfx/\n-Source/WebKit/chromium/googleurl/\n-Source/WebKit/chromium/gpu/\n-Source/WebKit/chromium/ipc/\n-Source/WebKit/chromium/media/\n-Source/WebKit/chromium/net/\n-Source/WebKit/chromium/ppapi/\n-Source/WebKit/chromium/printing/\n-Source/WebKit/chromium/sdch/\n-Source/WebKit/chromium/skia/\n-Source/WebKit/chromium/sql/\n-Source/WebKit/chromium/testing/\n-Source/WebKit/chromium/third_party/\n-Source/WebKit/chromium/tools/\n-Source/WebKit/chromium/ui/\n-Source/WebKit/chromium/v8/\n-Source/WebKit/chromium/webkit/\n-Source/WebKit/chromium/xcodebuild/\n-\n # Ignore files that Chromium port generates\n /Makefile.chromium\n /out\n /gyp-mac-tool\n \n-# Ignore compiled java tests:\n-LayoutTests/java/*.class\n-\n # Though the GTK build builds in a subdirectory, autogen.sh still deposits\n # a few files into the source tree.\n /aclocal.m4\n /autom4te.cache\n-/Source/autotools/compile\n-/Source/autotools/config.guess\n-/Source/autotools/config.sub\n-/Source/autotools/depcomp\n-/Source/autotools/gtk-doc.m4\n-/Source/autotools/install-sh\n-/Source/autotools/libtool.m4\n-/Source/autotools/ltmain.sh\n-/Source/autotools/ltoptions.m4\n-/Source/autotools/ltsugar.m4\n-/Source/autotools/ltversion.m4\n-/Source/autotools/lt~obsolete.m4\n-/Source/autotools/missing\n-/Source/WebKit/gtk/docs/GNUmakefile.in\n-/Source/WebKit/gtk/po/*.pot\n /autotoolsconfig.h.in\n /configure\n /GNUmakefile.in\n@@ -133,60 +37,6 @@ LayoutTests/java/*.class\n /INSTALL\n /README\n \n-# Ignore files installed by WebKitSupportLibrary/WebKitAuxiliaryLibrary\n-/WebKitSupportLibrary.zip\n-/WebKitLibraries/win/Software License Agreement for WebKit Support Libraries.rtf\n-/WebKitLibraries/win/WebKitAuxiliaryLibrary.headers\n-/WebKitLibraries/win/WebKitAuxiliaryLibraryVersion\n-/WebKitLibraries/win/WebKitChangesToPthreads.diff\n-/WebKitLibraries/win/include/ApplicationServices/\n-/WebKitLibraries/win/include/AssertMacros.h\n-/WebKitLibraries/win/include/Availability.h\n-/WebKitLibraries/win/include/AvailabilityInternal.h\n-/WebKitLibraries/win/include/AvailabilityMacros.h\n-/WebKitLibraries/win/include/CFNetwork/\n-/WebKitLibraries/win/include/ColorSync/\n-/WebKitLibraries/win/include/ConditionalMacros.h\n-/WebKitLibraries/win/include/CoreFoundation/\n-/WebKitLibraries/win/include/CoreGraphics/\n-/WebKitLibraries/win/include/CoreServices/\n-/WebKitLibraries/win/include/ImageIO/\n-/WebKitLibraries/win/include/QuartzCore/\n-/WebKitLibraries/win/include/SQLite/\n-/WebKitLibraries/win/include/SafariTheme/\n-/WebKitLibraries/win/include/TargetConditionals.h\n-/WebKitLibraries/win/include/checkint.h\n-/WebKitLibraries/win/include/dispatch/\n-/WebKitLibraries/win/include/inttypes.h\n-/WebKitLibraries/win/include/libxml/\n-/WebKitLibraries/win/include/libxslt/\n-/WebKitLibraries/win/include/pthreads/\n-/WebKitLibraries/win/include/stdbool.h\n-/WebKitLibraries/win/include/stdint.h\n-/WebKitLibraries/win/include/unicode/\n-/WebKitLibraries/win/include/unistd.h\n-/WebKitLibraries/win/include/xlocale.h\n-/WebKitLibraries/win/include/zlib/\n-/WebKitLibraries/win/lib/CFNetwork.lib\n-/WebKitLibraries/win/lib/CoreFoundation.lib\n-/WebKitLibraries/win/lib/CoreGraphics.lib\n-/WebKitLibraries/win/lib/QuartzCore.lib\n-/WebKitLibraries/win/lib/SQLite3.lib\n-/WebKitLibraries/win/lib/SafariTheme.lib\n-/WebKitLibraries/win/lib/icuin.lib\n-/WebKitLibraries/win/lib/icuuc.lib\n-/WebKitLibraries/win/lib/libdispatch.lib\n-/WebKitLibraries/win/lib/libicuin.lib\n-/WebKitLibraries/win/lib/libicuuc.lib\n-/WebKitLibraries/win/lib/libxml2.lib\n-/WebKitLibraries/win/lib/libxslt.lib\n-/WebKitLibraries/win/lib/pthreadVC2.lib\n-/WebKitLibraries/win/lib/zdll.lib\n-\n-# Ignore files generated by the Qt build-system:\n-Source/qtwebkitversion.h\n-Tools/qmake/.build-hint\n-\n # Ignore files generated by Qt Creator:\n *.pro.user\n \n@@ -198,3 +48,4 @@ Tools/qmake/.build-hint\n # Ignore Eclipse files:\n .project\n .cproject\n+WebKitSupportLibrary.zip\ndiff --git a/LayoutTests/dom/svg/level3/xpath/.gitattributes b/LayoutTests/dom/svg/level3/xpath/.gitattributes\nnew file mode 100644\nindex 0000000..b2ecbf4\n--- /dev/null\n+++ b/LayoutTests/dom/svg/level3/xpath/.gitattributes\n@@ -0,0 +1,64 @@\n+Attribute_Nodes.svg -crlf\n+Attribute_Nodes_xmlns.svg -crlf\n+Comment_Nodes.svg -crlf\n+Conformance_Expressions.svg -crlf\n+Conformance_ID.svg -crlf\n+Conformance_hasFeature_3.svg -crlf\n+Conformance_hasFeature_empty.svg -crlf\n+Conformance_hasFeature_null.svg -crlf\n+Conformance_isSupported_3.svg -crlf\n+Conformance_isSupported_empty.svg -crlf\n+Conformance_isSupported_null.svg -crlf\n+Element_Nodes.svg -crlf\n+Processing_Instruction_Nodes.svg -crlf\n+Text_Nodes.svg -crlf\n+XPathEvaluatorCast01.svg -crlf\n+XPathEvaluator_createExpression_INVALID_EXPRESSION_ERR.svg -crlf\n+XPathEvaluator_createExpression_NAMESPACE_ERR_01.svg -crlf\n+XPathEvaluator_createExpression_NAMESPACE_ERR_02.svg -crlf\n+XPathEvaluator_createExpression_NS.svg -crlf\n+XPathEvaluator_createExpression_no_NS.svg -crlf\n+XPathEvaluator_createNSResolver_all.svg -crlf\n+XPathEvaluator_createNSResolver_document.svg -crlf\n+XPathEvaluator_createNSResolver_documentElement.svg -crlf\n+XPathEvaluator_evaluate_INVALID_EXPRESSION_ERR.svg -crlf\n+XPathEvaluator_evaluate_NAMESPACE_ERR.svg -crlf\n+XPathEvaluator_evaluate_NOT_SUPPORTED_ERR.svg -crlf\n+XPathEvaluator_evaluate_TYPE_ERR.svg -crlf\n+XPathEvaluator_evaluate_WRONG_DOCUMENT_ERR.svg -crlf\n+XPathEvaluator_evaluate_document.svg -crlf\n+XPathEvaluator_evaluate_documentElement.svg -crlf\n+XPathExpression_evaluate_NOT_SUPPORTED_ERR.svg -crlf\n+XPathExpression_evaluate_WRONG_DOCUMENT_ERR.svg -crlf\n+XPathExpression_evaluate_document.svg -crlf\n+XPathExpression_evaluate_documentElement.svg -crlf\n+XPathNSResolver_lookupNamespaceURI_nist_dmstc.svg -crlf\n+XPathNSResolver_lookupNamespaceURI_null.svg -crlf\n+XPathNSResolver_lookupNamespaceURI_prefix.svg -crlf\n+XPathNSResolver_lookupNamespaceURI_xml.svg -crlf\n+XPathResult_TYPE_ERR.svg -crlf\n+XPathResult_booleanValue_false.svg -crlf\n+XPathResult_booleanValue_true.svg -crlf\n+XPathResult_invalidIteratorState_ANY_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_ANY_UNORDERED_NODE_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_BOOLEAN_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_FIRST_ORDERED_NODE_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_NUMBER_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_ORDERED_NODE_ITERATOR_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_ORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_STRING_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_UNORDERED_NODE_ITERATOR_TYPE.svg -crlf\n+XPathResult_invalidIteratorState_UNORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n+XPathResult_iterateNext_INVALID_STATE_ERR.svg -crlf\n+XPathResult_iteratorNext_ORDERED_NODE_ITERATOR_TYPE.svg -crlf\n+XPathResult_numberValue.svg -crlf\n+XPathResult_resultType.svg -crlf\n+XPathResult_singleNodeValue_ANY_UNORDERED_NODE_TYPE.svg -crlf\n+XPathResult_singleNodeValue_FIRST_ORDERED_NODE_TYPE.svg -crlf\n+XPathResult_snapshotItem_ORDERED_NODE_SNAPSHOT_TYPE_null.svg -crlf\n+XPathResult_snapshotItem_ORDERED_NODE_SNAPSHOT_TYPE_order.svg -crlf\n+XPathResult_snapshotItem_UNORDERED_NODE_SNAPSHOT_TYPE_count.svg -crlf\n+XPathResult_snapshotItem_UNORDERED_NODE_SNAPSHOT_TYPE_null.svg -crlf\n+XPathResult_snapshotLength_ORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n+XPathResult_snapshotLength_UNORDERED_NODE_SNAPSHOT_TYPE.svg -crlf\n+XPathResult_stringValue.svg -crlf\ndiff --git a/LayoutTests/editing/execCommand/.gitattributes b/LayoutTests/editing/execCommand/.gitattributes\nnew file mode 100644\nindex 0000000..04bf4a9\n--- /dev/null\n+++ b/LayoutTests/editing/execCommand/.gitattributes\n@@ -0,0 +1 @@\n+align-in-span.html -crlf\ndiff --git a/LayoutTests/editing/selection/.gitattributes b/LayoutTests/editing/selection/.gitattributes\nnew file mode 100644\nindex 0000000..ca0c670\n--- /dev/null\n+++ b/LayoutTests/editing/selection/.gitattributes\n@@ -0,0 +1 @@\n+drag-start-event-client-x-y.html -crlf\ndiff --git a/LayoutTests/fast/backgrounds/.gitattributes b/LayoutTests/fast/backgrounds/.gitattributes\nnew file mode 100644\nindex 0000000..2aa75eb\n--- /dev/null\n+++ b/LayoutTests/fast/backgrounds/.gitattributes\n@@ -0,0 +1 @@\n+background-position-rounding.html -crlf\ndiff --git a/LayoutTests/fast/backgrounds/repeat/resources/.gitattributes b/LayoutTests/fast/backgrounds/repeat/resources/.gitattributes\nnew file mode 100644\nindex 0000000..dd027c2\n--- /dev/null\n+++ b/LayoutTests/fast/backgrounds/repeat/resources/.gitattributes\n@@ -0,0 +1,2 @@\n+background-repeat-shorthand.js -crlf\n+margin-shorthand.js -crlf\ndiff --git a/LayoutTests/fast/block/float/.gitattributes b/LayoutTests/fast/block/float/.gitattributes\nnew file mode 100644\nindex 0000000..f512732\n--- /dev/null\n+++ b/LayoutTests/fast/block/float/.gitattributes\n@@ -0,0 +1 @@\n+clamped-right-float.html -crlf\ndiff --git a/LayoutTests/fast/block/positioning/.gitattributes b/LayoutTests/fast/block/positioning/.gitattributes\nnew file mode 100644\nindex 0000000..c0a1894\n--- /dev/null\n+++ b/LayoutTests/fast/block/positioning/.gitattributes\n@@ -0,0 +1,2 @@\n+absolute-with-html-border-quirks.html -crlf\n+absolute-with-html-border-strict.html -crlf\ndiff --git a/LayoutTests/fast/canvas/script-tests/.gitattributes b/LayoutTests/fast/canvas/script-tests/.gitattributes\nnew file mode 100644\nindex 0000000..05e539b\n--- /dev/null\n+++ b/LayoutTests/fast/canvas/script-tests/.gitattributes\n@@ -0,0 +1 @@\n+canvas-gradient-without-path.js -crlf\ndiff --git a/LayoutTests/fast/css/.gitattributes b/LayoutTests/fast/css/.gitattributes\nnew file mode 100644\nindex 0000000..820b6ef\n--- /dev/null\n+++ b/LayoutTests/fast/css/.gitattributes\n@@ -0,0 +1,11 @@\n+color-quirk.html -crlf\n+color-strict.html -crlf\n+css1_forward_compatible_parsing.html -crlf\n+empty-pseudo-class.html -crlf\n+first-child-pseudo-class.html -crlf\n+first-of-type-pseudo-class.html -crlf\n+last-child-pseudo-class.html -crlf\n+last-of-type-pseudo-class.html -crlf\n+only-child-pseudo-class.html -crlf\n+only-of-type-pseudo-class.html -crlf\n+text-input-with-webkit-border-radius.html -crlf\ndiff --git a/LayoutTests/fast/dom/.gitattributes b/LayoutTests/fast/dom/.gitattributes\nnew file mode 100644\nindex 0000000..a608bdd\n--- /dev/null\n+++ b/LayoutTests/fast/dom/.gitattributes\n@@ -0,0 +1,4 @@\n+everything-to-string.html -crlf\n+insert-span-into-long-text-bug-28245.html -crlf\n+simultaneouslyRegsiteredTimerFireOrder-expected.txt -crlf\n+timer-clear-interval-in-handler-and-generate-error.html -crlf\ndiff --git a/LayoutTests/fast/dom/Document/.gitattributes b/LayoutTests/fast/dom/Document/.gitattributes\nnew file mode 100644\nindex 0000000..1243d6b\n--- /dev/null\n+++ b/LayoutTests/fast/dom/Document/.gitattributes\n@@ -0,0 +1 @@\n+open-with-pending-load.html -crlf\ndiff --git a/LayoutTests/fast/dom/Element/.gitattributes b/LayoutTests/fast/dom/Element/.gitattributes\nnew file mode 100644\nindex 0000000..7107de1\n--- /dev/null\n+++ b/LayoutTests/fast/dom/Element/.gitattributes\n@@ -0,0 +1 @@\n+hostname-host.html -crlf\ndiff --git a/LayoutTests/fast/dom/StyleSheet/.gitattributes b/LayoutTests/fast/dom/StyleSheet/.gitattributes\nnew file mode 100644\nindex 0000000..9b8cfbb\n--- /dev/null\n+++ b/LayoutTests/fast/dom/StyleSheet/.gitattributes\n@@ -0,0 +1 @@\n+ownerNode-lifetime-2.html -crlf\ndiff --git a/LayoutTests/fast/dom/Window/.gitattributes b/LayoutTests/fast/dom/Window/.gitattributes\nnew file mode 100644\nindex 0000000..b8c449a\n--- /dev/null\n+++ b/LayoutTests/fast/dom/Window/.gitattributes\n@@ -0,0 +1 @@\n+window-property-clearing-expected.txt -crlf\ndiff --git a/LayoutTests/fast/dom/resources/.gitattributes b/LayoutTests/fast/dom/resources/.gitattributes\nnew file mode 100644\nindex 0000000..a6f19cf\n--- /dev/null\n+++ b/LayoutTests/fast/dom/resources/.gitattributes\n@@ -0,0 +1 @@\n+TestApplet.java -crlf\ndiff --git a/LayoutTests/fast/events/.gitattributes b/LayoutTests/fast/events/.gitattributes\nnew file mode 100644\nindex 0000000..298edb1\n--- /dev/null\n+++ b/LayoutTests/fast/events/.gitattributes\n@@ -0,0 +1,5 @@\n+keydown-keypress-focus-change.html -crlf\n+node-event-anchor-lock.html -crlf\n+onload-fires-twice.html -crlf\n+set-event-in-another-frame.html -crlf\n+set-event-to-null.html -crlf\ndiff --git a/LayoutTests/fast/forms/.gitattributes b/LayoutTests/fast/forms/.gitattributes\nnew file mode 100644\nindex 0000000..242fe88\n--- /dev/null\n+++ b/LayoutTests/fast/forms/.gitattributes\n@@ -0,0 +1,3 @@\n+select-remove-option.html -crlf\n+select-reset-multiple-selections-4-single-selection.html -crlf\n+textfield-onchange-deletion.html -crlf\ndiff --git a/LayoutTests/fast/forms/resources/.gitattributes b/LayoutTests/fast/forms/resources/.gitattributes\nnew file mode 100644\nindex 0000000..2e5880c\n--- /dev/null\n+++ b/LayoutTests/fast/forms/resources/.gitattributes\n@@ -0,0 +1,2 @@\n+form-and-frame-interaction-retains-values-main.html -crlf\n+form-and-frame-interaction-retains-values-submit.html -crlf\ndiff --git a/LayoutTests/fast/frames/.gitattributes b/LayoutTests/fast/frames/.gitattributes\nnew file mode 100644\nindex 0000000..fd8c796\n--- /dev/null\n+++ b/LayoutTests/fast/frames/.gitattributes\n@@ -0,0 +1,4 @@\n+frame-src-attribute.html -crlf\n+iframe-scroll-page-up-down.html-disabled -crlf\n+javascript-url-as-framesrc-crash.html -crlf\n+viewsource-attribute.html -crlf\ndiff --git a/LayoutTests/fast/frames/resources/.gitattributes b/LayoutTests/fast/frames/resources/.gitattributes\nnew file mode 100644\nindex 0000000..60c707e\n--- /dev/null\n+++ b/LayoutTests/fast/frames/resources/.gitattributes\n@@ -0,0 +1,2 @@\n+iframe-scroll-page-up-down-1.html -crlf\n+iframe-scroll-page-up-down-2.html -crlf\ndiff --git a/LayoutTests/fast/inline/.gitattributes b/LayoutTests/fast/inline/.gitattributes\nnew file mode 100644\nindex 0000000..d6777a7\n--- /dev/null\n+++ b/LayoutTests/fast/inline/.gitattributes\n@@ -0,0 +1 @@\n+inline-padding-disables-text-quirk.html -crlf\ndiff --git a/LayoutTests/fast/loader/.gitattributes b/LayoutTests/fast/loader/.gitattributes\nnew file mode 100644\nindex 0000000..f5be30c\n--- /dev/null\n+++ b/LayoutTests/fast/loader/.gitattributes\n@@ -0,0 +1 @@\n+submit-form-while-parsing-1.xhtml -crlf\ndiff --git a/LayoutTests/fast/overflow/.gitattributes b/LayoutTests/fast/overflow/.gitattributes\nnew file mode 100644\nindex 0000000..ea02989\n--- /dev/null\n+++ b/LayoutTests/fast/overflow/.gitattributes\n@@ -0,0 +1 @@\n+dynamic-hidden.html -crlf\ndiff --git a/LayoutTests/fast/parser/.gitattributes b/LayoutTests/fast/parser/.gitattributes\nnew file mode 100644\nindex 0000000..c2f6e89\n--- /dev/null\n+++ b/LayoutTests/fast/parser/.gitattributes\n@@ -0,0 +1,2 @@\n+external-entities-in-xslt.xml -crlf\n+external-entities.xml -crlf\ndiff --git a/LayoutTests/fast/parser/resources/.gitattributes b/LayoutTests/fast/parser/resources/.gitattributes\nnew file mode 100644\nindex 0000000..1d42fef\n--- /dev/null\n+++ b/LayoutTests/fast/parser/resources/.gitattributes\n@@ -0,0 +1 @@\n+external-entities.xsl -crlf\ndiff --git a/LayoutTests/fast/replaced/.gitattributes b/LayoutTests/fast/replaced/.gitattributes\nnew file mode 100644\nindex 0000000..7c26794\n--- /dev/null\n+++ b/LayoutTests/fast/replaced/.gitattributes\n@@ -0,0 +1 @@\n+replaced-breaking.html -crlf\ndiff --git a/LayoutTests/fast/table/.gitattributes b/LayoutTests/fast/table/.gitattributes\nnew file mode 100644\nindex 0000000..21dfd1f\n--- /dev/null\n+++ b/LayoutTests/fast/table/.gitattributes\n@@ -0,0 +1,7 @@\n+dynamic-cellpadding.html -crlf\n+fixed-table-with-percent-inside-percent-table.html -crlf\n+fixed-table-with-percent-width-inside-auto-table.html -crlf\n+fixed-table-with-percent-width-inside-extra-large-div.html -crlf\n+fixed-table-with-small-percent-width.html -crlf\n+rules-attr-dynchange1.html -crlf\n+rules-attr-dynchange2.html -crlf\ndiff --git a/LayoutTests/fast/text/.gitattributes b/LayoutTests/fast/text/.gitattributes\nnew file mode 100644\nindex 0000000..3b9ef57\n--- /dev/null\n+++ b/LayoutTests/fast/text/.gitattributes\n@@ -0,0 +1,2 @@\n+text-large-negative-letter-spacing-with-opacity.html -crlf\n+text-letter-spacing.html -crlf\ndiff --git a/LayoutTests/fast/text/international/.gitattributes b/LayoutTests/fast/text/international/.gitattributes\nnew file mode 100644\nindex 0000000..ee4c44c\n--- /dev/null\n+++ b/LayoutTests/fast/text/international/.gitattributes\n@@ -0,0 +1 @@\n+thai-baht-space.html -crlf\ndiff --git a/LayoutTests/fast/text/resources/.gitattributes b/LayoutTests/fast/text/resources/.gitattributes\nnew file mode 100644\nindex 0000000..884326c\n--- /dev/null\n+++ b/LayoutTests/fast/text/resources/.gitattributes\n@@ -0,0 +1 @@\n+line-breaks-crlf.txt -crlf\ndiff --git a/LayoutTests/http/tests/appcache/.gitattributes b/LayoutTests/http/tests/appcache/.gitattributes\nnew file mode 100644\nindex 0000000..c749988\n--- /dev/null\n+++ b/LayoutTests/http/tests/appcache/.gitattributes\n@@ -0,0 +1 @@\n+max-size.html -crlf\ndiff --git a/LayoutTests/http/tests/misc/.gitattributes b/LayoutTests/http/tests/misc/.gitattributes\nnew file mode 100644\nindex 0000000..5634218\n--- /dev/null\n+++ b/LayoutTests/http/tests/misc/.gitattributes\n@@ -0,0 +1,3 @@\n+location-test-xsl-style-sheet.xml -crlf\n+single-character-pi-stylesheet.xhtml -crlf\n+will-send-request-returns-null-on-redirect.html -crlf\ndiff --git a/LayoutTests/http/tests/misc/resources/.gitattributes b/LayoutTests/http/tests/misc/resources/.gitattributes\nnew file mode 100644\nindex 0000000..a5c38d1\n--- /dev/null\n+++ b/LayoutTests/http/tests/misc/resources/.gitattributes\n@@ -0,0 +1 @@\n+location-test-xsl-style-sheet.xsl -crlf\ndiff --git a/LayoutTests/http/tests/navigation/.gitattributes b/LayoutTests/http/tests/navigation/.gitattributes\nnew file mode 100644\nindex 0000000..2741d39\n--- /dev/null\n+++ b/LayoutTests/http/tests/navigation/.gitattributes\n@@ -0,0 +1,4 @@\n+no-referrer-reset.html -crlf\n+no-referrer-same-window.html -crlf\n+no-referrer-subframe.html -crlf\n+no-referrer-target-blank.html -crlf\ndiff --git a/LayoutTests/http/tests/navigation/resources/.gitattributes b/LayoutTests/http/tests/navigation/resources/.gitattributes\nnew file mode 100644\nindex 0000000..033bbc8\n--- /dev/null\n+++ b/LayoutTests/http/tests/navigation/resources/.gitattributes\n@@ -0,0 +1 @@\n+no-referrer-same-window-helper.php -crlf\ndiff --git a/LayoutTests/http/tests/security/isolatedWorld/.gitattributes b/LayoutTests/http/tests/security/isolatedWorld/.gitattributes\nnew file mode 100644\nindex 0000000..af10950\n--- /dev/null\n+++ b/LayoutTests/http/tests/security/isolatedWorld/.gitattributes\n@@ -0,0 +1,2 @@\n+events.html -crlf\n+userGestureEvents.html -crlf\ndiff --git a/LayoutTests/http/tests/security/isolatedWorld/resources/.gitattributes b/LayoutTests/http/tests/security/isolatedWorld/resources/.gitattributes\nnew file mode 100644\nindex 0000000..06b7c51\n--- /dev/null\n+++ b/LayoutTests/http/tests/security/isolatedWorld/resources/.gitattributes\n@@ -0,0 +1,2 @@\n+iframe.html -crlf\n+userGestureEvents-second-window.html -crlf\ndiff --git a/LayoutTests/http/tests/security/resources/.gitattributes b/LayoutTests/http/tests/security/resources/.gitattributes\nnew file mode 100644\nindex 0000000..b0a4eac\n--- /dev/null\n+++ b/LayoutTests/http/tests/security/resources/.gitattributes\n@@ -0,0 +1 @@\n+empty-svg.php -crlf\ndiff --git a/LayoutTests/java/.gitignore b/LayoutTests/java/.gitignore\nnew file mode 100644\nindex 0000000..6b468b6\n--- /dev/null\n+++ b/LayoutTests/java/.gitignore\n@@ -0,0 +1 @@\n+*.class\ndiff --git a/LayoutTests/platform/win/fast/events/.gitattributes b/LayoutTests/platform/win/fast/events/.gitattributes\nnew file mode 100644\nindex 0000000..68eac78\n--- /dev/null\n+++ b/LayoutTests/platform/win/fast/events/.gitattributes\n@@ -0,0 +1,7 @@\n+panScroll-event-fired.html -crlf\n+panScroll-image-no-scroll.html -crlf\n+panScroll-imageMap-href-no-scroll.html -crlf\n+panScroll-imageMap-noHref-scroll.html -crlf\n+panScroll-nested-divs.html -crlf\n+panScroll-no-iframe-jump.html -crlf\n+panScroll-preventDefault.html -crlf\ndiff --git a/LayoutTests/svg/custom/.gitattributes b/LayoutTests/svg/custom/.gitattributes\nnew file mode 100644\nindex 0000000..df1b91a\n--- /dev/null\n+++ b/LayoutTests/svg/custom/.gitattributes\n@@ -0,0 +1,7 @@\n+marker-opacity.svg -crlf\n+struct-use-09-b.svg -crlf\n+svg-fonts-in-html.html -crlf\n+use-events-crash.svg -crlf\n+use-on-symbol-inside-pattern.svg -crlf\n+use-setAttribute-crash.svg -crlf\n+xml-stylesheet.svg -crlf\ndiff --git a/LayoutTests/svg/custom/resources/.gitattributes b/LayoutTests/svg/custom/resources/.gitattributes\nnew file mode 100644\nindex 0000000..9ab7f69\n--- /dev/null\n+++ b/LayoutTests/svg/custom/resources/.gitattributes\n@@ -0,0 +1 @@\n+graffiti.svg -crlf\ndiff --git a/LayoutTests/tables/mozilla/bugs/.gitattributes b/LayoutTests/tables/mozilla/bugs/.gitattributes\nnew file mode 100644\nindex 0000000..d29a664\n--- /dev/null\n+++ b/LayoutTests/tables/mozilla/bugs/.gitattributes\n@@ -0,0 +1,3 @@\n+bug119786.html -crlf\n+bug222846.html -crlf\n+bug275625.html -crlf\ndiff --git a/LayoutTests/tables/mozilla/images/.gitattributes b/LayoutTests/tables/mozilla/images/.gitattributes\nnew file mode 100644\nindex 0000000..c5fc266\n--- /dev/null\n+++ b/LayoutTests/tables/mozilla/images/.gitattributes\n@@ -0,0 +1,2 @@\n+aboutHeader.gif -crlf\n+main-horizontal-scroll.gif -crlf\ndiff --git a/LayoutTests/tables/mozilla_expected_failures/bugs/.gitattributes b/LayoutTests/tables/mozilla_expected_failures/bugs/.gitattributes\nnew file mode 100644\nindex 0000000..2e2821e\n--- /dev/null\n+++ b/LayoutTests/tables/mozilla_expected_failures/bugs/.gitattributes\n@@ -0,0 +1,2 @@\n+bug101759.html -crlf\n+bug14489.html -crlf\ndiff --git a/LayoutTests/tables/mozilla_expected_failures/images/.gitattributes b/LayoutTests/tables/mozilla_expected_failures/images/.gitattributes\nnew file mode 100644\nindex 0000000..c5fc266\n--- /dev/null\n+++ b/LayoutTests/tables/mozilla_expected_failures/images/.gitattributes\n@@ -0,0 +1,2 @@\n+aboutHeader.gif -crlf\n+main-horizontal-scroll.gif -crlf\ndiff --git a/LayoutTests/wml/resources/.gitattributes b/LayoutTests/wml/resources/.gitattributes\nnew file mode 100644\nindex 0000000..74b19cc\n--- /dev/null\n+++ b/LayoutTests/wml/resources/.gitattributes\n@@ -0,0 +1,2 @@\n+enter-card-with-events.wml -crlf\n+enter-first-card-with-events.wml -crlf\ndiff --git a/ManualTests/.gitattributes b/ManualTests/.gitattributes\nnew file mode 100644\nindex 0000000..379f2f5\n--- /dev/null\n+++ b/ManualTests/.gitattributes\n@@ -0,0 +1,7 @@\n+DOMContextMenuEvent.html -crlf\n+cursor-max-size.html -crlf\n+drag-with-div-or-image-as-data-image.html -crlf\n+empty-script-crash.html -crlf\n+remove-form-node-with-radio-buttons-crash.html -crlf\n+select-delete-item.html -crlf\n+textarea-caret-position-after-auto-spell-correct.html -crlf\ndiff --git a/PerformanceTests/PageLoad/svg/files/.gitattributes b/PerformanceTests/PageLoad/svg/files/.gitattributes\nnew file mode 100644\nindex 0000000..d787670\n--- /dev/null\n+++ b/PerformanceTests/PageLoad/svg/files/.gitattributes\n@@ -0,0 +1,6 @@\n+Harvey_Rayner.svg -crlf\n+cacuts_02.svg -crlf\n+crawfish2_ganson.svg -crlf\n+france.svg -crlf\n+mtsthelens.svg -crlf\n+worldcup.svg -crlf\ndiff --git a/PerformanceTests/SunSpider/tests/parse-only/.gitattributes b/PerformanceTests/SunSpider/tests/parse-only/.gitattributes\nnew file mode 100644\nindex 0000000..8985d0a\n--- /dev/null\n+++ b/PerformanceTests/SunSpider/tests/parse-only/.gitattributes\n@@ -0,0 +1 @@\n+jquery-1.3.2.js -crlf\ndiff --git a/Source/.gitignore b/Source/.gitignore\nnew file mode 100644\nindex 0000000..a890840\n--- /dev/null\n+++ b/Source/.gitignore\n@@ -0,0 +1 @@\n+qtwebkitversion.h\ndiff --git a/Source/JavaScriptCore/JavaScriptCore.gyp/.gitignore b/Source/JavaScriptCore/JavaScriptCore.gyp/.gitignore\nnew file mode 100644\nindex 0000000..9b06f58\n--- /dev/null\n+++ b/Source/JavaScriptCore/JavaScriptCore.gyp/.gitignore\n@@ -0,0 +1,5 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj*\n+JavaScriptCore.xcodeproj\ndiff --git a/Source/Platform/Platform.gyp/.gitignore b/Source/Platform/Platform.gyp/.gitignore\nnew file mode 100644\nindex 0000000..72f70a2\n--- /dev/null\n+++ b/Source/Platform/Platform.gyp/.gitignore\n@@ -0,0 +1,5 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj*\n+*.xcodeproj*\ndiff --git a/Source/ThirdParty/glu/.gitignore b/Source/ThirdParty/glu/.gitignore\nnew file mode 100644\nindex 0000000..ce486c6\n--- /dev/null\n+++ b/Source/ThirdParty/glu/.gitignore\n@@ -0,0 +1,5 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj\n+glu.xcodeproj\ndiff --git a/Source/WTF/WTF.gyp/.gitignore b/Source/WTF/WTF.gyp/.gitignore\nnew file mode 100644\nindex 0000000..37f58cd\n--- /dev/null\n+++ b/Source/WTF/WTF.gyp/.gitignore\n@@ -0,0 +1,5 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj*\n+WTF.xcodeproj\ndiff --git a/Source/WebCore/WebCore.gyp/.gitignore b/Source/WebCore/WebCore.gyp/.gitignore\nnew file mode 100644\nindex 0000000..f2f101c\n--- /dev/null\n+++ b/Source/WebCore/WebCore.gyp/.gitignore\n@@ -0,0 +1,7 @@\n+*.Makefile\n+*.mk\n+*.rules\n+*.sln\n+*.tmp\n+*.vcproj*\n+WebCore.xcodeproj\ndiff --git a/Source/WebCore/accessibility/.gitattributes b/Source/WebCore/accessibility/.gitattributes\nnew file mode 100644\nindex 0000000..92bc8aa\n--- /dev/null\n+++ b/Source/WebCore/accessibility/.gitattributes\n@@ -0,0 +1 @@\n+AccessibilityAllInOne.cpp -crlf\ndiff --git a/Source/WebCore/bindings/js/.gitattributes b/Source/WebCore/bindings/js/.gitattributes\nnew file mode 100644\nindex 0000000..c0c93ec\n--- /dev/null\n+++ b/Source/WebCore/bindings/js/.gitattributes\n@@ -0,0 +1,2 @@\n+JSExceptionBase.cpp -crlf\n+JSExceptionBase.h -crlf\ndiff --git a/Source/WebCore/inspector/.gitattributes b/Source/WebCore/inspector/.gitattributes\nnew file mode 100644\nindex 0000000..30859d7\n--- /dev/null\n+++ b/Source/WebCore/inspector/.gitattributes\n@@ -0,0 +1 @@\n+Inspector.json -crlf\ndiff --git a/Source/WebCore/platform/chromium/.gitattributes b/Source/WebCore/platform/chromium/.gitattributes\nnew file mode 100644\nindex 0000000..36e6332\n--- /dev/null\n+++ b/Source/WebCore/platform/chromium/.gitattributes\n@@ -0,0 +1 @@\n+SuddenTerminationChromium.cpp -crlf\ndiff --git a/Source/WebCore/platform/network/win/.gitattributes b/Source/WebCore/platform/network/win/.gitattributes\nnew file mode 100644\nindex 0000000..6cd8b48\n--- /dev/null\n+++ b/Source/WebCore/platform/network/win/.gitattributes\n@@ -0,0 +1 @@\n+NetworkStateNotifierWin.cpp -crlf\ndiff --git a/Source/WebCore/platform/wx/wxcode/.gitattributes b/Source/WebCore/platform/wx/wxcode/.gitattributes\nnew file mode 100644\nindex 0000000..2d4de5a\n--- /dev/null\n+++ b/Source/WebCore/platform/wx/wxcode/.gitattributes\n@@ -0,0 +1 @@\n+non-kerned-drawing.h -crlf\ndiff --git a/Source/WebCore/rendering/.gitattributes b/Source/WebCore/rendering/.gitattributes\nnew file mode 100644\nindex 0000000..c5494d3\n--- /dev/null\n+++ b/Source/WebCore/rendering/.gitattributes\n@@ -0,0 +1 @@\n+RenderThemeChromiumWin.h -crlf\ndiff --git a/Source/WebKit/chromium/.gitignore b/Source/WebKit/chromium/.gitignore\nnew file mode 100644\nindex 0000000..8f2d4e1\n--- /dev/null\n+++ b/Source/WebKit/chromium/.gitignore\n@@ -0,0 +1,32 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj*\n+All.xcodeproj\n+WebKit.xcodeproj\n+WebKitUnitTests.xcodeproj\n+.gclient\n+.gclient_entries\n+base\n+chromium_deps\n+crypto\n+depot_tools\n+dbus\n+gfx\n+googleurl\n+gpu\n+ipc\n+media\n+net\n+ppapi\n+printing\n+sdch\n+skia\n+sql\n+testing\n+third_party\n+tools\n+ui\n+v8\n+webkit\n+xcodebuild\ndiff --git a/Source/WebKit/gtk/docs/.gitignore b/Source/WebKit/gtk/docs/.gitignore\nnew file mode 100644\nindex 0000000..535c651\n--- /dev/null\n+++ b/Source/WebKit/gtk/docs/.gitignore\n@@ -0,0 +1 @@\n+GNUmakefile.in\ndiff --git a/Source/WebKit/gtk/po/.gitignore b/Source/WebKit/gtk/po/.gitignore\nnew file mode 100644\nindex 0000000..e3a8c5d\n--- /dev/null\n+++ b/Source/WebKit/gtk/po/.gitignore\n@@ -0,0 +1 @@\n+*.pot\ndiff --git a/Source/autotools/.gitignore b/Source/autotools/.gitignore\nnew file mode 100644\nindex 0000000..f02f1fa\n--- /dev/null\n+++ b/Source/autotools/.gitignore\n@@ -0,0 +1,13 @@\n+compile\n+config.guess\n+config.sub\n+depcomp\n+gtk-doc.m4\n+install-sh\n+libtool.m4\n+ltmain.sh\n+ltoptions.m4\n+ltsugar.m4\n+ltversion.m4\n+lt~obsolete.m4\n+missing\ndiff --git a/Tools/BuildSlaveSupport/win/.gitattributes b/Tools/BuildSlaveSupport/win/.gitattributes\nnew file mode 100644\nindex 0000000..d952441\n--- /dev/null\n+++ b/Tools/BuildSlaveSupport/win/.gitattributes\n@@ -0,0 +1 @@\n+kill-old-processes -crlf\ndiff --git a/Tools/DumpRenderTree/DumpRenderTree.gyp/.gitignore b/Tools/DumpRenderTree/DumpRenderTree.gyp/.gitignore\nnew file mode 100644\nindex 0000000..72f70a2\n--- /dev/null\n+++ b/Tools/DumpRenderTree/DumpRenderTree.gyp/.gitignore\n@@ -0,0 +1,5 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj*\n+*.xcodeproj*\ndiff --git a/Tools/DumpRenderTree/cairo/.gitattributes b/Tools/DumpRenderTree/cairo/.gitattributes\nnew file mode 100644\nindex 0000000..31b4e3c\n--- /dev/null\n+++ b/Tools/DumpRenderTree/cairo/.gitattributes\n@@ -0,0 +1 @@\n+PixelDumpSupportCairo.cpp -crlf\ndiff --git a/Tools/FindSafari/.gitattributes b/Tools/FindSafari/.gitattributes\nnew file mode 100644\nindex 0000000..767439c\n--- /dev/null\n+++ b/Tools/FindSafari/.gitattributes\n@@ -0,0 +1 @@\n+Safari.exe.manifest -crlf\ndiff --git a/Tools/MiniBrowser/win/.gitattributes b/Tools/MiniBrowser/win/.gitattributes\nnew file mode 100644\nindex 0000000..3cc5165\n--- /dev/null\n+++ b/Tools/MiniBrowser/win/.gitattributes\n@@ -0,0 +1 @@\n+MiniBrowser.rc -crlf\ndiff --git a/Tools/TestResultServer/.gitattributes b/Tools/TestResultServer/.gitattributes\nnew file mode 100644\nindex 0000000..8233a98\n--- /dev/null\n+++ b/Tools/TestResultServer/.gitattributes\n@@ -0,0 +1 @@\n+index.yaml -crlf\ndiff --git a/Tools/TestWebKitAPI/TestWebKitAPI.gyp/.gitignore b/Tools/TestWebKitAPI/TestWebKitAPI.gyp/.gitignore\nnew file mode 100644\nindex 0000000..72f70a2\n--- /dev/null\n+++ b/Tools/TestWebKitAPI/TestWebKitAPI.gyp/.gitignore\n@@ -0,0 +1,5 @@\n+*.Makefile\n+*.mk\n+*.sln\n+*.vcproj*\n+*.xcodeproj*\ndiff --git a/Tools/WinLauncher/.gitattributes b/Tools/WinLauncher/.gitattributes\nnew file mode 100644\nindex 0000000..73a057d\n--- /dev/null\n+++ b/Tools/WinLauncher/.gitattributes\n@@ -0,0 +1 @@\n+WinLauncher.h -crlf\ndiff --git a/Tools/qmake/.gitignore b/Tools/qmake/.gitignore\nnew file mode 100644\nindex 0000000..52e11bd\n--- /dev/null\n+++ b/Tools/qmake/.gitignore\n@@ -0,0 +1 @@\n+.build-hint\ndiff --git a/Tools/record-memory-win/.gitattributes b/Tools/record-memory-win/.gitattributes\nnew file mode 100644\nindex 0000000..7d2ec04\n--- /dev/null\n+++ b/Tools/record-memory-win/.gitattributes\n@@ -0,0 +1 @@\n+main.cpp -crlf\ndiff --git a/WebKit/chromium/src/.gitattributes b/WebKit/chromium/src/.gitattributes\nnew file mode 100644\nindex 0000000..f175d03\n--- /dev/null\n+++ b/WebKit/chromium/src/.gitattributes\n@@ -0,0 +1,5 @@\n+EventListenerWrapper.cpp -crlf\n+EventListenerWrapper.h -crlf\n+WebEventListener.cpp -crlf\n+WebEventListenerPrivate.cpp -crlf\n+WebEventListenerPrivate.h -crlf\ndiff --git a/WebKit/gtk/po/.gitattributes b/WebKit/gtk/po/.gitattributes\nnew file mode 100644\nindex 0000000..a966a9c\n--- /dev/null\n+++ b/WebKit/gtk/po/.gitattributes\n@@ -0,0 +1,2 @@\n+sr.po -crlf\n+sr@latin.po -crlf\ndiff --git a/WebKit/qt/tests/qwebframe/resources/.gitattributes b/WebKit/qt/tests/qwebframe/resources/.gitattributes\nnew file mode 100644\nindex 0000000..05fe0f9\n--- /dev/null\n+++ b/WebKit/qt/tests/qwebframe/resources/.gitattributes\n@@ -0,0 +1,2 @@\n+testiframe.html -crlf\n+testiframe2.html -crlf\ndiff --git a/WebKit/win/.gitattributes b/WebKit/win/.gitattributes\nnew file mode 100644\nindex 0000000..d51f44d\n--- /dev/null\n+++ b/WebKit/win/.gitattributes\n@@ -0,0 +1,4 @@\n+COMPropertyBag.h -crlf\n+COMVariantSetter.h -crlf\n+WebIconFetcher.cpp -crlf\n+WebIconFetcher.h -crlf\ndiff --git a/WebKit/win/Interfaces/.gitattributes b/WebKit/win/Interfaces/.gitattributes\nnew file mode 100644\nindex 0000000..0013d7e\n--- /dev/null\n+++ b/WebKit/win/Interfaces/.gitattributes\n@@ -0,0 +1,2 @@\n+IWebEmbeddedView.idl -crlf\n+JavaScriptCoreAPITypes.idl -crlf\ndiff --git a/WebKit/win/WebCoreSupport/.gitattributes b/WebKit/win/WebCoreSupport/.gitattributes\nnew file mode 100644\nindex 0000000..9fbcc3c\n--- /dev/null\n+++ b/WebKit/win/WebCoreSupport/.gitattributes\n@@ -0,0 +1,3 @@\n+EmbeddedWidget.cpp -crlf\n+EmbeddedWidget.h -crlf\n+WebInspectorDelegate.h -crlf\ndiff --git a/WebKitLibraries/win/.gitignore b/WebKitLibraries/win/.gitignore\nnew file mode 100644\nindex 0000000..fd8b39e\n--- /dev/null\n+++ b/WebKitLibraries/win/.gitignore\n@@ -0,0 +1,4 @@\n+Software License Agreement for WebKit Support Libraries.rtf\n+WebKitAuxiliaryLibrary.headers\n+WebKitAuxiliaryLibraryVersion\n+WebKitChangesToPthreads.diff\ndiff --git a/WebKitLibraries/win/include/.gitignore b/WebKitLibraries/win/include/.gitignore\nnew file mode 100644\nindex 0000000..77a6ab8\n--- /dev/null\n+++ b/WebKitLibraries/win/include/.gitignore\n@@ -0,0 +1,28 @@\n+ApplicationServices\n+AssertMacros.h\n+Availability.h\n+AvailabilityInternal.h\n+AvailabilityMacros.h\n+CFNetwork\n+ColorSync\n+ConditionalMacros.h\n+CoreFoundation\n+CoreGraphics\n+CoreServices\n+ImageIO\n+QuartzCore\n+SQLite\n+SafariTheme\n+TargetConditionals.h\n+checkint.h\n+dispatch\n+inttypes.h\n+libxml\n+libxslt\n+pthreads\n+stdbool.h\n+stdint.h\n+unicode\n+unistd.h\n+xlocale.h\n+zlib\ndiff --git a/WebKitLibraries/win/lib/.gitignore b/WebKitLibraries/win/lib/.gitignore\nnew file mode 100644\nindex 0000000..ae9b657\n--- /dev/null\n+++ b/WebKitLibraries/win/lib/.gitignore\n@@ -0,0 +1,15 @@\n+CFNetwork.lib\n+CoreFoundation.lib\n+CoreGraphics.lib\n+QuartzCore.lib\n+SQLite3.lib\n+SafariTheme.lib\n+icuin.lib\n+icuuc.lib\n+libdispatch.lib\n+libicuin.lib\n+libicuuc.lib\n+libxml2.lib\n+libxslt.lib\n+pthreadVC2.lib\n+zdll.lib\ndiff --git a/Websites/planet.webkit.org/planet/.gitattributes b/Websites/planet.webkit.org/planet/.gitattributes\nnew file mode 100644\nindex 0000000..55db555\n--- /dev/null\n+++ b/Websites/planet.webkit.org/planet/.gitattributes\n@@ -0,0 +1 @@\n+LICENCE -crlf\ndiff --git a/Websites/webkit.org/blog/.gitattributes b/Websites/webkit.org/blog/.gitattributes\nnew file mode 100644\nindex 0000000..35ffd3a\n--- /dev/null\n+++ b/Websites/webkit.org/blog/.gitattributes\n@@ -0,0 +1,3 @@\n+license.txt -crlf\n+wp-config-sample.php -crlf\n+wp-config.php -crlf\ndiff --git a/Websites/webkit.org/blog/wp-includes/images/crystal/.gitattributes b/Websites/webkit.org/blog/wp-includes/images/crystal/.gitattributes\nnew file mode 100644\nindex 0000000..346e00c\n--- /dev/null\n+++ b/Websites/webkit.org/blog/wp-includes/images/crystal/.gitattributes\n@@ -0,0 +1 @@\n+license.txt -crlf\ndiff --git a/Websites/webkit.org/blog/wp-includes/js/scriptaculous/.gitattributes b/Websites/webkit.org/blog/wp-includes/js/scriptaculous/.gitattributes\nnew file mode 100644\nindex 0000000..eb4ffe5\n--- /dev/null\n+++ b/Websites/webkit.org/blog/wp-includes/js/scriptaculous/.gitattributes\n@@ -0,0 +1 @@\n+MIT-LICENSE -crlf\ndiff --git a/Websites/webkit.org/blog/wp-includes/js/swfupload/plugins/.gitattributes b/Websites/webkit.org/blog/wp-includes/js/swfupload/plugins/.gitattributes\nnew file mode 100644\nindex 0000000..7282a9a\n--- /dev/null\n+++ b/Websites/webkit.org/blog/wp-includes/js/swfupload/plugins/.gitattributes\n@@ -0,0 +1 @@\n+swfupload.speed.js -crlf\ndiff --git a/Websites/webkit.org/blog/wp-includes/js/tinymce/.gitattributes b/Websites/webkit.org/blog/wp-includes/js/tinymce/.gitattributes\nnew file mode 100644\nindex 0000000..346e00c\n--- /dev/null\n+++ b/Websites/webkit.org/blog/wp-includes/js/tinymce/.gitattributes\n@@ -0,0 +1 @@\n+license.txt -crlf\ndiff --git a/Websites/webkit.org/perf/slickspeed/frameworks/.gitattributes b/Websites/webkit.org/perf/slickspeed/frameworks/.gitattributes\nnew file mode 100644\nindex 0000000..f949e6f\n--- /dev/null\n+++ b/Websites/webkit.org/perf/slickspeed/frameworks/.gitattributes\n@@ -0,0 +1 @@\n+DomQuery.js -crlf\n"},{"id":"188101","messageId":"7vvclnoydd.fsf@alter.siamese.dyndns.org","threadId":"30103","inReplyTo":"20120329211136.GA1112@sigill.intra.peff.net","subject":"Re: top-level gitignore considered harmful","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-03-29T22:06:54Z","receivedAt":"2012-03-29T22:06:54Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> [1] ... But we could do better in git, too. fnmatch\n>     patterns need to be examined linearly because of wildcards. But\n>     many patterns don't have wildcards, or the wildcards come much later\n>     in the pattern. There's no reason we couldn't preprocess the\n>     patterns into a data structure with fast lookup properties, grouped\n>     by non-wildcard prefixes (so seeing \"foo/bar/*.baz\", we could build\n>     a trie that lets us reject \"other/directory\" after only a\n>     single-character match).\n\nIt sounds like a good project for somebody who has three months working on\nfull-time, especially if she can be helped with a good mentor.  The result\nwill reasonably be self-contained.\n"},{"id":"188140","messageId":"1333099827-ner-1054@calvin","threadId":"30103","inReplyTo":"20120329211136.GA1112@sigill.intra.peff.net","subject":"Re: top-level gitignore considered harmful","fromName":"Tomas Carnecky","fromEmail":"tomas.carnecky@gmail.com","sentAt":"2012-03-30T09:30:27Z","receivedAt":"2012-03-30T09:30:27Z","isPatch":false,"sender":{"key":"tomas.carnecky@gmail.com","avatar":null},"body":"On Thu, 29 Mar 2012 17:11:36 -0400, Jeff King <peff@peff.net> wrote:\n> So we were sitting around chatting today about how slow \"git status\" is\n> in the gigantic WebKit repository (because really, what else would one\n> chat about?). Carlos noticed that git spends a lot of time in the\n> gitignore code path.  It turns out that the WebKit repository has a\n> couple hundred excludes in the top-level .gitignore, many of which are\n> for specific files deep in the repository.\n> \n> Since these patterns are compared via fnmatch(), we have to process them\n> linearly for each entry[1]. And since the patterns are at the top level,\n> we check them for each of the ~180,000 files in the repository. So \"git\n> status\" will do O(m*n) work, where \"m\" is the number of patterns and \"n\"\n> is the number of files in the repository. And as a project grows over\n> time, one might expect \"m\" to be some constant factor of \"n\". So this is\n> really O(n^2) (albeit with some mitigating constant at the front).\n\nMany months ago I noticed that as well, when somebody came to #git and\ncomplained that git status is slow (it toook *many* seconds for him). We\ntracked that down to the fact that his .gitignore contained hundreds of\nentries. He basically did `git ls-files --other >> .gitignore`, so his\n.gitignore included every single object file and all other build artefacts.\nI told him to use wildcards and `git status` became usable again.\n\ntom\n"}]}