1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-15 03:12:40 +01:00
Commit graph

851 commits

Author SHA1 Message Date
epriestley
692d2a8b6f Arcanist: Apply symlink patches correctly
Summary:
When an arcbundle includes a symlink, we fail to apply it correctly
when applying to a subversion working copy.

Test Plan:
created a diff which added a symlink, removed it locally, bundled
and applied the patch, got a good symlink out

Reviewed By: aran
Reviewers: aran
CC: epriestley, aran
Differential Revision: 63
2011-03-09 00:47:01 -08:00
epriestley
12aa487790 Merge branch 'patch' 2011-03-07 22:09:11 -08:00
epriestley
02627b1762 Fix 'arc patch' when adding files in new directories
Summary:
If you apply an arcbundle to a subversion working copy which adds
files in new subdirectories, we fail to create and add the parent directories
so the whole operation fails. Make sure we create and add any missing parent
directories before apply patches.

Test Plan:
Applied Facebook diff #542056 to www@rE349795 cleanly, while it
failed previously.

Reviewed By: aran
Reviewers: aran
CC: aran
Differential Revision: 62
2011-03-07 22:09:02 -08:00
epriestley
66099afd91 Merge branch 'master' of github.com:facebook/arcanist 2011-03-07 22:04:29 -08:00
epriestley
f794418ba9 Arcanist: parse SVN "replaced" status
Summary:
SVN has a special 'replaced' status which was not being parsed
correctly. Parse it correctly.

Test Plan:
Replaced a file, ran arc diff, got a sensible diff.

Reviewed By: aran
Reviewers: aran
CC: aran
Differential Revision: 60
2011-03-07 22:04:22 -08:00
epriestley
b891519d3d Merge branch 'master' of github.com:facebook/arcanist 2011-03-07 20:21:09 -08:00
epriestley
0eba67ce9f Get rid of explicit timezone silliness.
Summary:

Test Plan:

Reviewers:

CC:
2011-03-07 20:20:48 -08:00
epriestley
71016a09f8 Explicitly use "--format=medium" when running 'git log'
Summary:
Git (the world's hardest revision control system) allows you to change
output formats by accident and/or without your direct knowledge. Protect users
from themselves.

Test Plan:
Changed "pretty" in [format] to "format:quack" so every log just
outputs the word "quack". Ran "arc diff" successfully.

Reviewed By: aran
Reviewers: aran
CC: epriestley, aran
Differential Revision: 56
2011-03-07 16:13:06 -08:00
epriestley
4b30319747 Make XHPAST parse-depth warning an actual warning.
Summary:
XHPAST encounters a parse-depth problem on some files because PHP
5.2 has an un-overridable parse depth limit for JSON. The text of this error
says it is a "warning" but we currently raise an error. Make it a warning
instead.

The JSON depth is 20 until PHP 5.2.3, where it becomes 128. After PHP 5.3
it defaults to 512 and is user-configurable, which will allow us to resolve
this issue in nearly all cases.

Since I made if/else express as a list in the AST, this only actually arises
in long binary chains, most commonly string concatenation, like:

  $out = 'a'.'a'.'a'.'a'...

...where each string is a variable or HTML tag and the program is constructing
a complicated document.

At some point I'll add some PHP 5.3 massaging to the XHPAST decoder itself to
raise this limit to something more huge.

Test Plan:
Ran "arc lint --lintall" on a file with a very deep binary
expression tree ("1 + 1 + 1 ...") and received a warning instead of an error.

Reviewed By: aran
Reviewers: pad, aran
CC: epriestley, aran
Differential Revision: 54
2011-03-07 11:44:11 -08:00
epriestley
61e16d9cc3 Fix issue with svn-hook-pre-commit when resolving .arcconfig for nested
directories

Summary:
If you had changes to a directory covered by a .arcconfig residing
inside another directory also covered by an .arcconfig, the hook would
incorrectly attribute the first file it attempted to resolve to the topmost
.arcconfig because it failed to break out of the loop after resolving it.

All other files would be correctly attributed, because they'd hit the cache.

Test Plan:
Created an svn repository and checked it out locally. Created a
structure like this:

  .arcconfig
  shallow
  a/
   b/
    c/
     .arcconfig
     d/
      deep
      deep2
      deep3

Made modifications to "deep", "deep2", and "deep3". Received an error message
about multiple .arcconfig changes, attributing one file to the topmost
arcconfig and the other two to the deeper one.

Applied patch.

Commit now goes through. Made a commit affecting 'shallow' and 'deep' and
'deep2', commit was correctly blocked and files were attributed to the
corresponding .arcconfigs.

Reviewed By: mroch
Reviewers: mroch
CC: mroch
Differential Revision: 50
2011-03-05 00:49:52 -08:00
epriestley
0a0aa6d718 Restore the --edit workflow somewhat properly. (2)
Summary: summary999

Test Plan: test2

Reviewers:

CC:

Differential Revision: 219938
2011-03-04 16:37:41 -08:00
epriestley
d9e8c2d0aa Merge branch 'master' of github.com:facebook/arcanist 2011-03-03 16:11:10 -08:00
epriestley
a7cbae1dc6 Make 'arc' work for users without the POSIX PHP installed.
Summary:
Some PHP installs don't have this by default. Do a conditional check
since this functionality is noncritical.

Test Plan:
will make srash test

Differential Revision: 43
Reviewed By: aran
Reviewers: rash67, aran, jungejason
CC: aran
2011-03-03 16:11:03 -08:00
epriestley
f1b2cfa3f6 Make 'arc' work for users without the POSIX PHP installed.
Summary: Some PHP installs don't have this by default. Do a conditional check
since this functionality is noncritical.

Test Plan: will make srash test

Reviewers: rash67, aran, jungejason

CC:

Differential Revision: 43
2011-03-02 19:32:57 -08:00
epriestley
d01dc4df37 Merge branch 'master' of github.com:facebook/arcanist 2011-03-02 19:31:36 -08:00
epriestley
bef6b0a244 Updated .divinerconfig.
Summary:

Test Plan:

Reviewers:

CC:
2011-03-02 15:25:45 -08:00
epriestley
482db3a83c Possible workaround for null 'changes'.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-28 11:33:22 -08:00
epriestley
22ceb9a60a Merge branch 'master' of github.com:facebook/arcanist 2011-02-26 20:54:21 -08:00
epriestley
6b2c8c6bbb Fix a couple of warnings raised by HipHop.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-26 20:54:06 -08:00
adonohue
cc8c7d4997 Respect @nolint
Summary:
Respect @nolint annotations

Test Plan:
New "test case"

Differential Revision: 41
Reviewed By: epriestley
Reviewers: epriestley
CC: epriestley
2011-02-26 20:54:06 -08:00
adonohue
3f5d4c2f62 Merge branch 'master' of github.com:facebook/arcanist 2011-02-24 18:36:43 -08:00
adonohue
c83f3f6aeb Respect @nolint
Summary:
Respect @nolint annotations

Test Plan:
New "test case"

Differential Revision: 41
Reviewed By: epriestley
Reviewers: epriestley
CC: epriestley
2011-02-24 18:36:30 -08:00
epriestley
651f567f96 Improve error messages when trying to parse bad .arcconfig files.
Summary: Haiping is getting a pretty confusing error message when trying to
commit.

Test Plan: Created a mock repository, installed the hook, made commits against
directories with bad .arcconfigs.

Reviewers:

CC:
2011-02-24 16:34:27 -08:00
epriestley
c13147cf53 Stop arc from destroying files under HPHPi.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-24 14:08:49 -08:00
epriestley
309609169d Make arcanist more flexible about SVN base revisions
Summary: When running "arc diff" in a mixed-base-revision working copy, we
prevent the operation. Relax this restriction so that having a different root
revision is okay, so long as all affected files share the same revision. This
facilitates multiple similar edits without updates.

Test Plan: Reverted a file to an older revision in an SVN working copy, ran
"arc diff", was rejected. Applied patch, ran "arc diff", diff went through and
was recorded with the right SVN base revision in the database.

Reviewers:

CC:
2011-02-23 12:06:22 -08:00
epriestley
ed53f98e9e Merge branch 'master' of github.com:facebook/arcanist 2011-02-21 17:00:05 -08:00
epriestley
fe256c59f4 Correctly parse conflicted files out of SVN XML.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-21 16:59:37 -08:00
epriestley
a4d30cc42b Partially restore --edit to stop it from stomping all over everything.
Summary: We sync from local right now, which is fairly terrible. But
fixing this correctly is also not trivial and I don't have the right
primitives yet.

Test Plan:

Reviewers:

CC:
2011-02-19 22:14:53 -08:00
epriestley
5099b005cf Some documentation.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-19 11:36:08 -08:00
epriestley
b50acb5129 Provide a "--conduit-uri" override for testing, and tweak some documentation.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-18 22:17:41 -08:00
epriestley
0eecd3108f Resolve further subtlety with untracked files.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-18 17:08:10 -08:00
epriestley
0ac9b6c27b Merge branch 'master' of github.com:facebook/arcanist 2011-02-18 16:52:52 -08:00
epriestley
c921e20272 Don't send untracked files to lint or unit workflows when running 'arc diff'.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-18 16:52:27 -08:00
epriestley
58a2720785 Don't reject commits which fail to trigger any linters.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-17 12:45:15 -08:00
epriestley
964030050b Respect --no-ansi and disable ansi for non-TTY terminals.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 23:41:03 -08:00
epriestley
a3466fcb6d Prep this for actual production installs.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 23:14:55 -08:00
epriestley
8dc45eac97 Merge branch 'master' of github.com:facebook/arcanist 2011-02-16 21:04:16 -08:00
epriestley
40349b6b26 Basic documentation for ".arcconfig".
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 21:03:32 -08:00
epriestley
e0de194e11 Move this block into a more sensible branch.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 18:49:45 -08:00
epriestley
4b1c4238bc Fix two common points of confusion:
- show "push upstream" instructions after arc amend
	- parse 'diffcamp revision'

Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 18:47:17 -08:00
epriestley
ba6091f945 Add @nocommit and tests to Text linter.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 17:26:51 -08:00
epriestley
2354d544e3 Restore hook configuration in lint unit tests. Make working copy setup an
external.

Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 11:53:34 -08:00
epriestley
2f37912946 Expose the already-functional "--engine" flag for the unit workflow.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 11:53:13 -08:00
epriestley
834b375e47 Improve bash completion for commands like 'arc lint' and 'arc unit'.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 11:51:06 -08:00
epriestley
1040046f3a Support --load-phutil-library in arcanist.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 10:07:48 -08:00
epriestley
7ef47d3e15 More SVN hook docs.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-16 10:06:44 -08:00
epriestley
026269a707 Inch toward a defensibly documented project state.
Summary:

Test Plan:

Reviewers:

CC:
2011-02-15 15:10:53 -08:00
epriestley
ca98fc175f Add lint support to 'arc svn-hook-pre-commit'.
Summary: The biggest blocker on getting rid of arc in trunk is that the lint
rules in the commit hooks are still running the old version. Push arc
commit hook support toward some reasonable state of approximately working.

Test Plan:

Reviewers:

CC:
2011-02-15 14:57:24 -08:00
epriestley
d2b5d9108b Provide coverage for the xhpast $a->b->c parsing bug exposed by tautolinting the
codebase.

Summary:

Test Plan:

Reviewers:

CC:
2011-02-13 16:43:32 -08:00
epriestley
b3b2da4608 Fix greediness in Apache License linter.
Summary: The multi-line comment regexp was potentially too greedy. See
"greedy.lint-test".
	- Made it less greedy.
	- Added test coverage.
	- Fixed an issue with the Apache license getting applied with too much
	  whitespace against C files.

Test Plan: Ran unit tests.

Reviewers: aran

CC:

Differential Revision: 36
2011-02-13 16:03:05 -08:00