Giter Site home page Giter Site logo

fbshipit's Introduction

FBShipIt

NOTE: This project is no longer maintained. Meta has switched to using a (currently) closed-source solution to this that we hope to release in the future. Existing Open Source users can check out Copybara.

FBShipIt is a library written in Hack for copying commits from one repository to another.

For example, Meta uses it to:

  • copy commits from our monolithic Mercurial repository to project-specific GitHub repositories
  • sync changes from project specific repos like CPython and the linux kernel
  • Import changes from PyTorch into our Mercurial monorepo

Major Features

  • read from Git or Mercurial (hg) repositories
  • write to Git or Mercurial (hg) repositories
  • remove files or directories matching certain patterns
  • remove/rewrite sections of commit messages
  • modify commit authors (for example, if all internal commits are authored by employees, restore original authors for GitHub pull requests)

Major Limitations

FBShipIt has been primarily designed for branches with linear histories; in particular, it does not understand merge commits.

Requirements

Installing

$ composer require facebook/fbshipit

How FBShipIt Works

There are three main concepts: phases, changesets, and filters.

ShipItPhase objects represent a high-level action, such as 'clone this repository', 'pull this repository', 'sync changesets', and 'push repository'.

Within the sync phase, a ShipItChangeset is an immutable object representing a commit.

Filters are functions that take a Changeset, and return a new, modified one.

Provided Phases

  • ShipItCreateNewRepoPhase: creates a new Git repository with an 'initial commit'. Skipped unless --create-new-repo passed.
  • ShipItAssertValidFilterPhase: make sure that the filter is consistent with the specified roots.
  • ShipItGitHubInitPhase: create and configure a github clone.
  • ShipItPullPhase: pull in any new changes to a repository.
  • ShipItPushPhase: push local changes to the destination repository.
  • ShipItSyncPhase: copy commits from the source repository to the destination repository.
  • ShipItVerifyRepoPhase: check that the destination repository matches the source repository and filter. Skipped unless --verify or --create-fixup-patch is passed.

Using FBShipIt

You need to construct:

  • a ShipItManifest object, defining your default working directory, and the directory names of your source and destination repositories
  • a list of phases you want to run
  • a pipeline of filters, assuming you are using the ShipItSyncPhase

Filters are provided for common operations - the most frequent are:

  • ShipItPathFilters::moveDirectories(string $changeset, dict<string, string> $mapping): apply patches to a different directory in the destination repository
  • ShipItPathFilters::stripPaths(string $changeset, vec<string> $patterns, vec<string> $exception_patterns = vec[]): remove any modifications to paths matching $patterns, unless they match something in $exception_patterns.

Example

See the demo/ directory for a simple example to start from.

Using With An Empty Destination Repository

Add ShipItCreateNewRepoPhase to your phase list (after source init and pull phases), then run:

hhvm my_script.hack --create-new-repo

This will give you the path to a git repository with a single commit; you can then push it to your destination.

Using With An Existing Destination Repository

When there is at least one relevant commit in the source repository that is not in the destination repository, run:

hhvm my_script.hack --first-commit=FIRST_UNSYNCED_COMMIT_ID_GOES_HERE

Future Runs

Run your script with no arguments; FBShipIt adds tracking information to the commits it creates, so will automatically sync any new commits.

Reducing Common Code With Multiple Projects

We recommend splitting out common filters and phase setup to separate classes, and for these to be re-used between your projects. For an example from Facebook's usage, see FBCommonFilters

Further Examples

Some other code that might be useful for configuring FBShipIt can be found in fb-examples/.

License

FBShipIt is MIT-licensed.

fbshipit's People

Contributors

bigfootjon avatar yns88 avatar sdwilsh avatar fredemmott avatar facebook-github-bot avatar zpao avatar mroch avatar passy avatar nataliejameson avatar simpkins avatar snarkmaster avatar periodic1236 avatar zertosh avatar jjergus avatar davide125 avatar gabelevi avatar priteshrnandgaonkar avatar orionr avatar kassens avatar davidsnider avatar joelmarcey avatar jknoxville avatar jstrizich avatar jvillard avatar patapizza avatar michel-slm avatar sunshowers avatar zhonglowu avatar yiding avatar wez avatar

Stargazers

 avatar Mina Kim avatar  avatar kenta avatar Chikita Isaac  avatar  avatar  avatar  avatar Amrik Singh Khalsa avatar InnocentKonde avatar Stefan avatar james avatar  avatar  avatar  avatar Stephen Karl Larroque avatar Russellsch avatar  avatar Guillaume Delorme avatar Lori avatar  avatar Kevin Broch avatar  avatar Tim avatar Andre Nguyen avatar Ionut Cenac avatar Dayan Ruben avatar Rogelio Domínguez Hernández avatar  avatar  avatar Sung Jeon avatar  avatar Piotr Kardasz avatar  avatar Yang, Bo avatar Viper avatar sutsushi avatar Gabriel Donadel Dall'Agnol avatar Mehul Kar avatar Kyle2501 avatar Matt Lenz avatar Dmitry Berezovsky avatar WangSiyuan avatar Alex Hunt avatar Charlotte avatar Marius Bergmann avatar Gustavo Jeronimo avatar Himank Barve avatar Jesil Jose avatar Ernst Salzmann avatar Taylor D. Edmiston avatar harofan avatar Thinh Vu avatar Sean P. Myrick V19.1.7.2 avatar Will Caulfield avatar Mateusz avatar Faustino Kialungila avatar Thomas avatar Todd Young avatar MarkYin avatar Ulaybadin avatar Alexandre Hublau avatar Andrew Makarenko avatar Dave Clark avatar David Vins avatar Jeff Pullen avatar  avatar Art Shendrik avatar Anton Kastritskii avatar  avatar Tom Jaskowski avatar  avatar Seyi Adebajo avatar  avatar Gkoran Stoilkovits avatar Wojtek O.  avatar Zixian Cai avatar Chuong avatar  avatar Bora Alp Arat avatar Ezra Lalonde avatar Emad Ehsan avatar Rajan Ponnappan avatar  avatar xuatz avatar Robert Jan Schlimbach avatar Michael  Martin avatar Yoginth avatar  avatar Nex Zhu avatar Adson Henrique avatar Akinn Rosa avatar  avatar Jeremiah Rodriguez avatar Juliano Reis avatar Howard Lau avatar Rex Zhou avatar Edmundo Santos avatar Gabriel Ferreira avatar  avatar

Watchers

Takeshi Watanabe avatar Scott Bulua avatar  avatar Johan Moreau avatar Aaron Kushner avatar  avatar Abhishek Tripathi avatar Cami Williams avatar  avatar  avatar Pratik avatar Anirudh Ramesh avatar  avatar Facebook Whois Bot avatar Kairsten Fay avatar  avatar  avatar Adi avatar March Kasama Kaewsainguan avatar Andrew J Brush avatar Michelle Frye avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar gelo avatar  avatar Finn Balor avatar Md Rezwan Islam avatar  avatar Timmie FLINT SYNER avatar ikha ika avatar  avatar  avatar  avatar Sean P. Myrick V19.1.7.2 avatar  avatar  avatar Ulaybadin avatar  avatar  avatar

fbshipit's Issues

com.dts.freefireth

UnityFS5.x.x2018.4.11f1烅?[CQ瀨@��CAB-5c944700d27cfde7fcdedefb5e98ad87I�瀨J2018.4.11f1
s鬾�0炻揑?�'€7€€H€�€€1€1€@�€€Q€j€�€�€*
�€3�€< �€E
�€N
�€W
�€ �€i��€r�€{�€��€��€��€��€�H€�€1€1€@�€€Q€j€H€�€1€1€@�€€Q€j€H€�€1€1€ @�€€!Q€j€"m_ExecutionOrderHash128m_PropertiesHashbytes[0]bytes[1]bytes[2]bytes[3]bytes[4]bytes[5]bytes[6]bytes[7]bytes[8]bytes[9]bytes[10]bytes[11]bytes[12]bytes[13]bytes[14]bytes[15]m_ClassNamem_Namespacem_AssemblyNamer�翸諳/J"tY潖�嵞躞#嫻~[d0+6t €7€€4€v€ A�€A.€ A�€]€Ah€�€ �€€.€ €H€�€€1€1€ @�€€ Q€j€ H€ €1€1€ @�€€�Q€j€�€€1€1€��€€H€j€@�€€Q€j€�€-€1€1€@�€€�€j€@L€�€U€1€1€@�€€�€j€@�€_ �€c!�€g"�€k#�€o$�€s%�€w&�€{'�€(�€�)�€�*�€�+�€�,�€�-�€�.�€�/��01€1€1�€€2�j€ 3�€�4�€�5�€�6�€�7�€�8�€�9�€�:�€�;<1€1€=�€€>j€ ?�€!@�€+A�€5B�€?C�€ID�€VE�€cF�€pG�€}H€1€1€I@�€€J�€j€ K �€�L �€�M �€�N �€�O€1€1€P@�€€Q�€j€R �€�S �€�T �€�U �€�V �€�W€1€1€X@�€€Y�€j€ Z �€�[ �€�\ �€�] �€�^€1€1€_@�€€V€j€a�€�b�€�c€1€1€d@�€€e�€j€f �€�g �€�h �€�i€1€1€j@�€€k�€j€l �€�m �€�n �€�o€1€1€p@�€€q�€j€r �€�s �€�t �€�u€1€1€v@�€€w�€j€x �€�y �€�z ��{€1€1€|€�€€}�j€~€H€�€1€1€€@
�€€�
Q€j€����€1€1€�€
�€€�
�j€�€�€���€�€ 1€1€�@
�€€�
�€j€

�€��
�€��
�€�� �€�€ 1€1€�@
�€€�
�€j€

�€��
�€��
�€�� �€�€ 1€1€�@
�€€�
�€j€

�€��
�€��
�€�� ;�€1€1€�€�€€�j€�€�€E�€1€1€�@
�€€�
�€j€��€O�€1€1€�@
�€€�
�€j€�]j�€1€1€�€�€€�]j€�€�€s
� �€�� �€�� �€�� �€|� �€�� �€�� �€�� �€�� �€�
� �€�� �€�� �€�� H€��€1€1€�@
�€€�
Q€j€��€���€���€���€���€��€1€1€�@�€€��€j€��€���€��H€��€1€1€�@�€€�Q€j€��€��A�€��€1€1€�@�€€��€j€��1€1€��€€�j€
��€��€4��€=�F\�1€1€��€€�Fj€��€��€s��€z�€1€1€�@�€€��€j€��€��€1€1€�@�€€��€j€��€��€1€1€�@�€€��€j€��€���1€1€�@�€€��€j€��€���1€1€�@�€€��€j€��€���1€1€�@�€€��€j€��€���1€1€�@�€€��€j€���€1€1€�€�€€��j€�€�€&��1€1€@
�€€
�€j€�€5€1€1€@�€€�€j€@�€_�€c
�€g�€k �€o
�€s
�€w
�€{
�€��€��€��€��€��€��€��€D€1€1€@�€€�€j€]X€1€1€€�€€]j€€�€s
�€� �€� �€�! �€|" �€�# �€�$ �€�% �€�& �€�
' �€�( �€�) �€�* H€�+€1€1€,@
�€€-
Q€j€.�€�/�€�0�€c1AH€j2€1€1€3@�€€4Q€j€5m_FileIDm_PathIDmeshNameanimatedBoneNamesanimatedBoneHashesUMAMeshDatameshDatabindPosese00e01e02e03e10e11e12e13e20e21e22e23e30e31e32e33UMABoneWeightboneWeightsboneIndex0boneIndex1boneIndex2boneIndex3weight0weight1weight2weight3BoneWeightunityBoneWeightsm_Weight0m_Weight1m_Weight2m_Weight3m_BoneIndex0m_BoneIndex1m_BoneIndex2m_BoneIndex3verticesxyztangentswnormalscolors32rgbauvuv2uv3uv4UMABlendShapeblendShapesshapeNameUMABlendFrameframesframeWeightdeltaVerticesdeltaNormalsdeltaTangentsSubMeshTrianglessubmeshestrianglestrianglesListUMATransformumaBonespositionrotationscalenamehashparentumaBoneCountrootBoneHashboneNameHashessubMeshCountvertexCountRootBoneNameoptimizedoptimizeduvOptimizedBoneWeightoptimizedBoneWeightsboneIndexweight01weight23OptimizedBoneWeightV2optimizedBoneWeightsV2weightoptimizedTangentsoptimizedNormalsoptimizeduv2optimizedVertArrayoptimizedNormalArrayoptimizedUVArrayoptimizedBoneWeightArraySubMeshTrianglesNewoptimizedSubMeshArraytrianglesArrayextraBindPosesextraBoneNameHashesextraBonesisMaleslotGroupr/|Wkw�G�8�(抆>濉>���矌�9�.�
€7€€4€v€
A�€A.€ A�€]€Ah€�€
�€€.€
€H€�€€1€1€ @�€€
Q€j€
�€
A�€#
€1€1€���€€H€j€€1€1€@�€€Q€j€€1€1€€�€€4j€€H€D€1€1€@�€€Q€j€�€SH€^€1€1€@�€€Q€j€ dr
!�€"€.€ #€H€y$€1€1€%@�€€&Q€j€'�
(�€)€.€ €�
+�€,€.€ -€m_FileIDm_PathIDNoSaveObjectRefsIndexedTypeNamesAssetItemItems_QualifiedName_TypeIndex_NamePPtr<$Object>m_Item_PathPPtr<$UMAMeshAsset>BaseMaleBoneBaseFemaleBoner
qo;O媹RV8-駇]�4%G閝Px?乍餩�馐E�
€7€€4€v€
A�€A.€ A�€]€Ah€�€
�€€.€
€H€�€€1€1€ @�€€
Q€j€
H€
€1€1€
@�€€�Q€j€�€€1€1€��€€H€j€@�€€Q€j€H€/€1€1€@�€€Q€j€�€<€1€1€��€€H€j€€1€1€@�€€ Q€j€!�€B"€1€1€#��€€$H€j€%€1€1€&@�€€'Q€j€(�€X)€1€1€
��€€+H€j€,€1€1€-@�€€.Q€j€/p0€H€�1€1€1€2@�€€3Q€j€4��5€1€1€6€�€€7�j€8€H€�9€1€1€:@
�€€;
Q€j€<�€�=�€�>��?€�€�@@h€�A€
1€1€B@�€€CQ€j€Dm_FileIDm_PathIDDisplayValuecompatibleRaceswardrobeSlotHidessuppressWardrobeSlotsbeSuppressWardrobeSlotsMiniPackReciperecipeDataraceMiniPackedSlotDataslotsidscalecopyIdxMiniPackedOverlayDataoverlayflagsrT鑒鄽�-
Q�2 v拷�r4犯{ $(�)胙墔k"
€7€€4€v€
A�€A.€ A�€]€Ah€�€
�€€.€
€H€�€€1€1€ @�€€
Q€j€
�€
�1€1€
@�€€��€j€m_FileIDm_PathIDserializedChunkrUL'g6c鼾%Fmd�&`="S 胲齗衿2她Ca
€7€€4€v€
A�€A.€ A�€]€Ah€�€
�€€.€
€H€�€€1€1€ @�€€
Q€j€
'

�€
€.€ �€�€6�€L€1€1€��€€H€j€@�€€Q€j€�€Z€1€1€@�€€�€j€�€l€1€1€��€€H€j€€1€1€@�€€ Q€j€!��"€��
#�€$€.€ %€��
&�€'€.€ (€��)€1€1€€�€€+�j€,€H€�-€1€1€.@
�€€/
Q€j€0��
1�€2€.€ 3€H€�4€1€1€5@�€€6Q€j€7�€Py€
�€€.€$€9b�€C�€Py€
�€€.€$€�€nH€� €1€1€!@�€€"Q€j€#�€�$€1€1€%��€€&H€j€'€1€1€(@�€€)Q€j€
L€�+@�€�,�€�-�€�.€1€1€/€�€€0€j€1€H€�€2€1€1€3@�€€4Q€j€5H€
€6€1€1€7@�€€8Q€j€9AssetBundlem_PreloadTablem_FileIDm_PathIDm_ContainerAssetInfopreloadIndexpreloadSizeassetm_MainAssetm_RuntimeCompatibilitym_AssetBundleNamem_Dependenciesm_IsStreamedSceneAssetBundlem_ExplicitDataLayoutm_PathFlagsm_SceneHashes嗐N割vB皦麡韶侔O�€7€€�€A€1€1€A@�€€A
j€
A$€
A�€$A.€-
A�€6H€�€ €1€1€
@�€€
Q€j€
�€>
L€D�m_ComponentComponentPaircomponentm_FileIDm_PathIDm_Layerm_Tagm_IsActivev�xIB很7��4U[t€7€€4€v€
A�€A.€ A�€ �€" �€$ �€&
�€( �€*
�€"
�€$
�€&
�€:

�€"� �€$ �€& �€GA€1€1€A@�€€A�€A.€ A�€R
�€.€ m_FileIDm_PathIDm_LocalRotationxyzwm_LocalPositionm_LocalScalem_Childrenm_Father萜�铸蝷�4秹0�4傕�夑G就�Larn艞眿�!l乷谗笖�8$p款妍08晽�&€凄煻P<�()�L゜忞棯�+X贖橾�
�,@捞l~_誔X嚡暞^zi貾-X枿#i}レ�/�5痿2B身1hp2�4r喈�+4�T陁m傺�043
X夗箭纲h4l檂徦�;��6<D9�13%8<葥� �滻X咢 ?v轔LXOD鯸 伸娥Q燨€婦�&D2<dXL;�$+k賟t R\夑G就�捞l~_�4r喈�+4葥� �滻婦�&D2<dRaceData="S 胲齗衿2她RaceDataUMA=o�€?
Z�>€簲;詵o?墟毒D3o?�!c=W2淳Sx�>�[絯�?悑z<}准€?斕�=�'蚪妑}?ⅱ缶x莮?]iQ叫 戤�>6巜=筝}?
=-�€?�?unityfs5.x.x2018.4.11f1烅?[cq瀨@ �cab-5c944700d27cfde7fcdedefb5e98ad87i�瀨j2018.4.11f1
s鬾�0炻揑?�'€7€€h€�€€1€1€@�€€q€j€�€�€*
�€3�€< �€e
�€n
�€w
�€ �€i �€r�€{�€��€��€��€��€�h€�€1€1€@�€€q€j€h€�€1€1€@�€€q€j€h€�€1€1€ @�€€!q€j€"m_executionorderhash128m_propertieshashbytes[0]bytes[1]bytes[2]bytes[3]bytes[4]bytes[5]bytes[6]bytes[7]bytes[8]bytes[9]bytes[10]bytes[11]bytes[12]bytes[13]bytes[14]bytes[15]m_classnamem_namespacem_assemblynamer�翸諳/j"ty潖�嵞躞#嫻~[d0+6t €7€€4€v€ a�€a.€ a�€]€ah€�€ �€€.€ €h€�€€1€1€ @�€€ q€j€ h€ €1€1€ @�€€ q€j€�€€1€1€��€€h€j€@�€€q€j€�€-€1€1€@�€€�€j€@l€�€u€1€1€@�€€�€j€@�€_ �€c!�€g"�€k#�€o$�€s%�€w&�€{'�€(�€�)�€�*�€�+�€�,�€�-�€�.�€�/��01€1€1�€€2�j€ 3�€�4�€�5�€�6�€�7�€�8�€�9�€�:�€�;<1€1€=�€€>j€ ?�€!@�€+a�€5b�€?c�€id�€ve�€cf�€pg�€}h€1€1€i@�€€j�€j€ k �€�l �€�m �€�n �€�o€1€1€p@�€€q�€j€r �€�s �€�t �€�u �€�v �€�w€1€1€x@�€€y�€j€ z �€�[ �€�\ �€�] �€�^€1€1€_@�€€v€j€a�€�b�€�c€1€1€d@�€€e�€j€f �€�g �€�h �€�i€1€1€j@�€€k�€j€l �€�m �€�n �€�o€1€1€p@�€€q�€j€r �€�s �€�t �€�u€1€1€v@�€€w�€j€x �€�y �€�z ��{€1€1€|€�€€}�j€~€h€�€1€1€€@
�€€�
q€j€����€1€1€�€
�€€�
�j€�€�€���€�€ 1€1€�@
�€€�
�€j€

�€��
�€��
�€�� �€�€ 1€1€�@
�€€�
�€j€

�€��
�€��
�€�� �€�€ 1€1€�@
�€€�
�€j€

�€��
�€��
�€�� ;�€1€1€�€�€€�j€�€�€e�€1€1€�@
�€€�
�€j€��€o�€1€1€�@
�€€�
�€j€�]j�€1€1€�€�€€�]j€�€�€s
� �€�� �€�� �€�� �€|� �€�� �€�� �€�� �€�� �€�
� �€�� �€�� �€�� h€��€1€1€�@
�€€�
q€j€��€���€���€���€���€��€1€1€�@�€€��€j€��€���€��h€��€1€1€�@�€€�q€j€��€��a�€��€1€1€�@�€€��€j€��1€1€��€€�j€
��€��€4��€=�f\�1€1€��€€�fj€��€��€s��€z�€1€1€�@�€€��€j€��€��€1€1€�@�€€��€j€��€��€1€1€�@�€€��€j€��€���1€1€�@�€€��€j€��€���1€1€�@�€€��€j€��€���1€1€�@�€€��€j€��€���1€1€�@�€€��€j€���€1€1€�€�€€��j€�€�€&��1€1€@
�€€
�€j€�€5€1€1€@�€€�€j€@�€_�€c
�€g�€k �€o
�€s
�€w
�€{
�€ �€��€��€��€��€��€��€d€1€1€@�€€�€j€]x€1€1€€�€€]j€€�€s
�€� �€� �€�! �€|" �€�# �€�$ �€�% �€�& �€�
' �€�( �€�) �€�* h€�+€1€1€,@
�€€-
q€j€.�€�/�€�0�€c1ah€j2€1€1€3@�€€4q€j€5m_fileidm_pathidmeshnameanimatedbonenamesanimatedbonehashesumameshdatameshdatabindposese00e01e02e03e10e11e12e13e20e21e22e23e30e31e32e33umaboneweightboneweightsboneindex0boneindex1boneindex2boneindex3weight0weight1weight2weight3boneweightunityboneweightsm_weight0m_weight1m_weight2m_weight3m_boneindex0m_boneindex1m_boneindex2m_boneindex3verticesxyztangentswnormalscolors32rgbauvuv2uv3uv4umablendshapeblendshapesshapenameumablendframeframesframeweightdeltaverticesdeltanormalsdeltatangentssubmeshtrianglessubmeshestrianglestriangleslistumatransformumabonespositionrotationscalenamehashparentumabonecountrootbonehashbonenamehashessubmeshcountvertexcountrootbonenameoptimizedoptimizeduvoptimizedboneweightoptimizedboneweightsboneindexweight01weight23optimizedboneweightv2optimizedboneweightsv2weightoptimizedtangentsoptimizednormalsoptimizeduv2optimizedvertarrayoptimizednormalarrayoptimizeduvarrayoptimizedboneweightarraysubmeshtrianglesnewoptimizedsubmesharraytrianglesarrayextrabindposesextrabonenamehashesextrabonesismaleslotgroupr/|wkw�g�8�(抆>濉>� �矌�9�.�
€7€€4€v€
a�€a.€ a�€]€ah€�€
�€€.€
€h€�€€1€1€ @�€€
q€j€
�€
a�€#
€1€1€ ��€€h€j€€1€1€@�€€q€j€€1€1€€�€€4j€€h€d€1€1€@�€€q€j€�€sh€^€1€1€@�€€q€j€ dr
!�€"€.€ #€h€y$€1€1€%@�€€&q€j€'�
(�€)€.€ €�
+�€,€.€ -€m_fileidm_pathidnosaveobjectrefsindexedtypenamesassetitemitems_qualifiedname_typeindex_namepptr<$object>m_item_pathpptr<$umameshasset>basemalebonebasefemaleboner
qo;o媹rv8-駇]�4%g閝px?乍餩�馐e�
€7€€4€v€
a�€a.€ a�€]€ah€�€
�€€.€
€h€�€€1€1€ @�€€
q€j€
h€
€1€1€
@�€€ q€j€�€€1€1€��€€h€j€@�€€q€j€h€/€1€1€@�€€q€j€�€<€1€1€��€€h€j€€1€1€@�€€ q€j€!�€b"€1€1€#��€€$h€j€%€1€1€&@�€€'q€j€(�€x)€1€1€
��€€+h€j€,€1€1€-@�€€.q€j€/p0€h€�1€1€1€2@�€€3q€j€4��5€1€1€6€�€€7�j€8€h€�9€1€1€:@
�€€;
q€j€<�€�=�€�>��?€�€�@@h€�a€
1€1€b@�€€cq€j€dm_fileidm_pathiddisplayvaluecompatibleraceswardrobeslothidessuppresswardrobeslotsbesuppresswardrobeslotsminipackreciperecipedataraceminipackedslotdataslotsidscalecopyidxminipackedoverlaydataoverlayflagsrt鑒鄽�-
q�2 v拷�r4犯{ $(�)胙墔k"
€7€€4€v€
a�€a.€ a�€]€ah€�€
�€€.€
€h€�€€1€1€ @�€€
q€j€
�€
�1€1€
@�€€ �€j€m_fileidm_pathidserializedchunkrul'g6c鼾%fmd�&`="s 胲齗衿2她ca
€7€€4€v€
a�€a.€ a�€]€ah€�€
�€€.€
€h€�€€1€1€ @�€€
q€j€
'

�€
€.€ €�€6�€l€1€1€��€€h€j€@�€€q€j€�€z€1€1€@�€€�€j€�€l€1€1€��€€h€j€€1€1€@�€€ q€j€!��"€��
#�€$€.€ %€��
&�€'€.€ (€��)€1€1€€�€€+�j€,€h€�-€1€1€.@
�€€/
q€j€0��
1�€2€.€ 3€h€�4€1€1€5@�€€6q€j€7�€py€
�€€.€$€9b�€c�€py€
�€€.€$€�€nh€� €1€1€!@�€€"q€j€#�€�$€1€1€%��€€&h€j€'€1€1€(@�€€)q€j€
l€�+@�€�,�€�-�€�.€1€1€/€�€€0€j€1€h€�€2€1€1€3@�€€4q€j€5h€
€6€1€1€7@�€€8q€j€9assetbundlem_preloadtablem_fileidm_pathidm_containerassetinfopreloadindexpreloadsizeassetm_mainassetm_runtimecompatibilitym_assetbundlenamem_dependenciesm_isstreamedsceneassetbundlem_explicitdatalayoutm_pathflagsm_scenehashes嗐n割vb皦麡韶侔o�€7€€�€a€1€1€a@�€€a
j€
a$€
a�€$a.€-
a�€6h€�€ €1€1€
@�€€
q€j€
�€>
l€d m_componentcomponentpaircomponentm_fileidm_pathidm_layerm_tagm_isactivev�xib很7��4u[t€7€€4€v€
a�€a.€ a�€ �€" �€$ �€&
�€( �€*
�€"
�€$
�€&
�€:

�€" �€$ �€& �€ga€1€1€a@�€€a�€a.€ a�€r
�€.€ m_fileidm_pathidm_localrotationxyzwm_localpositionm_localscalem_childrenm_father萜�铸蝷�4秹0�4傕�夑g就�larn艞眿�!l乷谗笖�8$p款妍08晽�&€凄煻p<�()�l゜忞棯�+x贖橾�
�,@捞l~_誔x嚡暞^zi貾-x枿#i}レ�/�5痿2b身1hp2�4r喈�+4�t陁m傺 043
x夗箭纲h4l檂徦�;��6<d9�13%8<葥� �滻x咢 ?v轔lxod鯸 伸娥q燨€婦�&d2<dxl;�$+k賟t r\夑g就�捞l~_�4r喈�+4葥� �滻婦�&d2<dracedata="s 胲齗衿2她racedatauma=o�€?
z�>€簲;詵o?墟毒d3o?�!c=w2淳sx�>�[絯�?悑z<}准€?斕�=�'蚪妑}?ⅱ缶x莮?]iq叫 戤�>6巜=筝}?
=-�€? ? aimbot

hhvm 3.24 needs call-time pass-by-reference fixes

Using composer with HHVM 3.24 needs fixes to fbshipit that are not present in the released version in packagist. Will it be possible to release another version to packagist that is compatible with HHVM 3.24.

Example fixes: c242594

Short of releasing a new version, I think the instructions in the README can be updated to include the correct repository to be used with composer.

Build fails

I cannot build fbshipit because of the following error:

Composer version 1.8.4 2019-02-11 10:52:10
fbshipit: master
hhvm: 4.0.3-1~bionic

hhvm /usr/local/bin/composer require facebook/fbshipit

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'array_pop() expects parameter 1 by reference, but the call was not annotated with '&'' in phar://composer.phar/bin/../src/../src/Composer/Util/Silencer.php:51
Stack trace:
#0 phar://composer.phar/bin/../src/../src/Composer/Util/Silencer.php(74): Composer\Util\Silencer::restore()
#1 phar://composer.phar/bin/../src/../src/Composer/Console/Application.php(73): Composer\Util\Silencer::call()
#2 phar://composer.phar/bin/composer(55): Composer\Console\Application->__construct()
#3 /usr/local/bin/composer(24): include()
#4 {main}

Will this be fixed? Or is there a solution for this problem? Or is fbshipit dead?

Normalize hashes, throw exception on things that aren't hashes

  • normalize to the full commit hashes
  • hg can be extended to support custom commit identifiers - subversion IDs, differential, etc. These should be banned: some are ambiguous, others may be local-only. Generally, there's a risk of users depending on behavior that is out of our control. Possible fix: assert that original hash is a substring of the normalized hash.

ImportIt does not preserve Unicode correctly

Importing facebook/sapling#573 replaces the "🐛" in commit title with "�":

[sapling][PR] �(chg): don't crash when user has more than 16 groups on macOS

and it seems various Unicode characters were not handled properly. For example, "👍🏻" got imported as "👍�", and the author name "Max 👨🏽‍💻 Coplan" was imported as "Max 👨�‍💻 Coplan".

Add interactive consistency fix option

Depends on #3

If repos are inconsistent, a patch could be generated, then used with git add --patch or similar. This should be interactive because it can not know which version is correct (see DEBUGGING.md for details)

Import Bot?

So, we have our internal monorepo syncing out to our different OSS projects -- yay! It's working great.

Now, the question of course is how do we accept PR's? It seems to be that most, if not all, of the fbshipit tooling could be used to build functionality like "@facebook-github-bot import".

I'm curious about two things:

  1. is the fbshipit code used internally to build the import/shipit bots?

  2. Do you have any thoughts on how we might handle the case where we've moved files from an internal __github__ folder into the root directory of the external repo during the outward sync, but on the inward sync those files need to be reconciled back to their proper place internally? An example of this in fb OSS seems like it would be the Relay repo. There's a moveDirectories filter that does self::RELAY_ROOT.'/__github__/' => ''. What way have you guys found to reconcile that when doing an import and generating a diff for Phabricator?

Curious to hear your thoughts. I want to build this! Manually building patches from PR's is for the birds :-)

Thanks!

/cc @fredemmott

Add consistency check option

This can currently be done manually by:

. Using --special-create-new-repo to create a new repo with just 'initial commit'

. Adding the current repository as a remote,

. Fetching the remote

. Running git diff between the new repo and the remote. If things are consistent, there will be no diff

Improve support for releasing additional files

Current process is:

  • locally creating a branch just before the commit that does not apply
  • run with --create-fixup-patch --source-repo-dir=PATH_TO_REPO_WHERE_YOU_MADE_THE_BRANCH --source-branch=BRANCH_YOU_JUST_CREATED
  • apply it to the git dir with patch
  • review the changes to make sure there's nothing fbonly
  • commit the result and push directly to github

Ideas:

  • add support for specifying an initial revision so the branch doesn't need to be created
  • add an option to automatically apply the patch, and dump people into git add --patch for review

Optional full automation will not be accepted.

Clarify "linear histories" limitation

I would really appreciate seeing this limitation documented a little further.

Specifically I would like to understand the issue with merge commits and know if there is a migration path from a codebase with a long history of these to one which would be ready to use fbshipit.

Raise a clear error if target branch does not exist

eg if target repo is a brand new GitHub repo with no branches.

Current behavior is a failing git checkout master, something about master not being a valid path. We can check for this and give a clearer message (maybe suggesting --create-new-repo)

Problem when using fbshipit from Composer

On a new project, where I intend to use fbshipit, I get the following error when I run hhvm /path/to/composer require facebook/fbshipit:

  [InvalidArgumentException]
  Could not find package facebook/fbshipit at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability

After updating my minimum-stability to "dev", it installs fine.

We should either 1) publish with a "stable" stability, or 2) note this in the installation documentation.

Support proxies

  • proxy settings should be in ShipItBaseConfig
  • it should be possible to use the proxy for just source, just destination, or both

Question: does this work Sapling?

So I'm playing around with Sapling and while I really like the interface, there are times when having tools like lazygit or gitui is a plus. So I found this tool. I was wondering if it has support for .sl :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.