Eclipse、Subclipse、SubversiveのSVNプラグインの長所と短所は何ですか?[閉まっている]


633

EclipseのSVNは2つのキャンプに分かれています。SVNの人々はSubclipseと呼ばれるプラグインを開発しました。Eclipseの人々はSubversiveと呼ばれるプラグインを持っています。大まかに言って、どちらも同じことをします。それぞれの長所と短所は何ですか?


回答:


176

どちらも非常によく似ていますが、Subversiveは「eclipse svn provider」です。いくつかの便利な機能があるため、主にSubversiveを使用します。

歴史のグループ化

コミットごとに一連の行を表示するだけでなく、ブランチの履歴を参照しているときに、今日、週などでコミットをグループ化できます。

幹、枝、タグのマッピング

Subversiveはデフォルトのsvnレイアウト(トランク、ブランチ、タグ(変更可能))を想定しているため、タグ付けまたはブランチを作成したい場合は、ワンクリックでタグまたはブランチの名前を指定します。

私が言ったように、これらは私が便利だと思う小さな違いです。どちらもmylynでうまく機能しますが、全体として、これら2つの拡張機能には大きな違いはありません。

Subversiveとのマージは苦痛ですが(Subclipseを試したことはありません)、うまくマージできませんでした。マージのプレビューはすばらしいですが、マージが完了しないか、時間がかかることがあります。ほとんどの場合、問題なくコマンドラインを使用してマージを完了します。


3
いい答え、2つ追加するだけです。1.どちらも同じような設計が内部にあり、同じ会社から開始されました(サブクリップがスタックしたため、破壊が開始されました)。2.サブクリップのサポートが少し良くなりました。
ハードコード

5
今日、このトピックについてどう思いますか?Subversiveでのマージサポートはどの程度優れていますか?私はサブクリップのマージを頻繁に行っていますが、うまくいきます。
PeterŠtibraný2010年

5
Subversiveのチームが行ったことは何でも、最後のいくつかのリリースの時点でマージの問題を修正しました。私は最新バージョン(1.0.0.I20120601-1700)を使用しており、コードのマージはこれ以上簡単にはできません。
IAmYourFaja 2012

16
私の友人、SVNマージが苦痛ではない場合はありますか?
Joe Plante、2012年

1
サブクリップとのマージに成功しました。しかし、正直に言って、そのようなSVN集中的なことをしているとき...私は安くてTortoiseSVNにジャンプします。しかし、今はlinux dev envに移動しようとしているので、確認する必要があります。
demaniak 2014年

161

私はこれに答えるときにひとひねりします。私はSubclipseのプロジェクトリーダーであり、プロジェクトのすべてのリリースなどを管理しています。だから私の偏見は明らかだ。

私はSubversiveについてあまり話をしません。明らかに、それを使用して好きなユーザーがいます。どちらも成熟した製品であるため、機能的には製品は非常に似ています。

私がコメントしたいのは、なんとかしてSubversiveが「公式のEclipse」プラグインであるという考えです。そのような指定がないため、それは真実ではありません。Eclipseはオープンソースの基盤であり、ルール、プロセス、IP要件などに準拠したいすべてのプロジェクトは、その基盤でプロジェクトをホストできます。それはあなたを他のどのプラグインよりも多かれ少なかれ公式にすることはありません。

また、Subversiveは創業以来「インキュベーション」段階にあり、卒業要件を満たしているとは思えません。ここを見るとわかるように、プロジェクトにはコミッターが1人しかいないため、コミットアクティビティは非常に低いレベルに減少しています。

Subversive-SVNチームプロバイダー

では、なぜSubclipseを使用する必要があるのでしょうか。私たちはSubversion自体にも積極的に関わっています。私はSubversion PMCのメンバーであり、Java言語バインディングを維持して、私たち(およびSubversiveなどの他のプロジェクト)がAPIを使用できるようにしています。

Subversionと直接連携してAPIを定義および改善し、必要な機能がSubclipseなどのクライアントに確実に公開されるようにします。また、Visual Studioインテグレーション(AnkhSVN)およびTortoiseSVNチームと緊密に連携し、クライアント全体で比較的一貫したユーザーエクスペリエンスが確保されるようにしています。

Subclipseは現在も積極的に維持されており、Eclipseバージョン3.2〜4.2のサポートを維持しています。私たちは常にフィードバックに耳を傾け、コミュニティからのアイデアを取り入れようとしています。最近の1.8.xリリースには、大規模なプロジェクトで作業するとき(つまり、実際に見たとき)のEclipseのパフォーマンスを大幅に改善する内部変更が含まれています。

Subclipseは、マージトラッキングサポートなどの分野で先導してきました。そこでは、最初に1.5でこの機能を追加し、その後のリリースでそれを進化させるためにSubversionチームと緊密に協力しました。私たちはしばしば新しいAPIの最初のコンシューマーであり、機能を強化するために必要なフィードバックをプロジェクトに提供しました。また、数年前にグラフィカルなリビジョングラフ機能を導入し、この長い間求められていた機能を初めてEclipseユーザーに提供しました。

SubversiveにSubclipseで作成したい特定のUI機能がある場合は、コミュニティにアクセスしてディスカッションフォーラムに参加することをお勧めします。たぶん他のユーザーがあなたの意見を共有し、私たちは一緒にUIを改善することができます。

フォーラム[Subclipse-users]

Eclipse 4.2はこの記事の執筆時点での最新リリースですが、Subclipseが将来のすべてのEclipseリリースをサポートすることを想定していても安全です。


大丈夫、長くて有益な投稿。私が探していたものではありませんが、非常に洞察力があります。
Blitz

1
私は議論で売られていますが、あなたはSubclipseに同じ統計を与えずにSubversiveを捨てます。編集して、Subclipseのコミット履歴へのリンクと、1人以上が作業している証拠を含めることができますか?:)
Tom Carchrae、2013

私はSubversiveの話を捨てるつもりはありません、そしてあなたはSubclipseチームが過去2年間主に2人であったことは正しいです。Ohlohがプロジェクト情報を参照することをお勧めします:ohloh.net/p/subversive
Mark Phippard 2013

2
この投稿に基づいて、私はSubclipseを4か月間使用してきましたが、SubclipseにはUIベースの競合解決が欠けているという単純な事実のため、Subversiveに切り替えました。Subversiveプラグインとの同期ビューで「Edit Conflict」を取得します。
Daniel Sokolowski、2014

2
将来の参考のために、いつでもSVNKitを更新サイトから更新することができます(これが私が行うことのすべてです)。新しいSubclipseリリースを投稿するときにのみ、新しいバージョンをチェックします。ご指摘の問題は見つかりませんでしたが、サイトは更新されました。
Mark Phippard、2015年

117

Eclipseのすべての新しいバージョンで、私はSubversiveをインストールします。それはEclipseによって提供される標準だからです。そして、毎回、私の既存のプロジェクトを認識するのに問題があります。

そのため、Subversiveをアンインストールし、代わりにSubclipseをインストールすることになりました。また、コマンドラインやEclipseでSVNを頻繁に使用していますが、Subclipseには問題ありません。


16
私はこれを2番目にしなければなりません。私たちはリポジトリでコマンドラインを少し使用していますが、Subversiveはそれらをうまく利用したことがありません。一方、サブクリップは単一の問題を与えたことはありません。
2011年

3
同意した。現在、OSXにコマンドラインsvnバージョン1.7.2がインストールされています。Subversiveのアダプターが古いため、Subclipseに切り替えなければなりませんでした。
Peter Tseng

1
同意する!部分的に奇妙な動作を破壊しますが、Iveは常にsubclipseで非常に安定した結果を示したため、常に戻ります。
明確に定義できない

1
コマンドラインをSubclipseと並行して使用できる可能性のために+1。
ガラス2013

私はsvnを機能させるのに苦労するたびに(私はルートではありません)、IndigoからNeonまでEclipseを使用しています。私は破壊的な仕事をしたことがありません。一方、subclipse + svnkitは私が最終的に解決する唯一のソリューションです。
fchen

51

この投稿を読んだ後、Subclipse hand downに変更しました。
http://eclipsezone.com/eclipse/forums/t77149.rhtml#92035407


5
+1ですが、参考までに、subversion.comは、現在tigrisにリンクしているsubversion.orgにリダイレクトされるようになりました。
si618 2009

25
-1公平に言えば、2006年7月の投稿以降、状況は大きく変化しました。私はそれがもはや議論に関連しているとは思えません。
joelittlejohn

-1私が試したSubclipseの記事の影響を受けました。以前Subversiveで機能していたプロジェクトのSVN更新中にOutOfMemoryを取得しました。部分的にチェックアウトされているプロジェクトでクリーンアップを実行できません。Subversiveに切り替えます。
Oleg Rudenko 2016

34

Subversionと多くのマージを行う場合は、おそらくCollabNetデスクトップ-Eclipseエディションを選択します。ダウンロードするにはCollabNetにアカウントを登録する必要がありますが、無料です。基本的には、より優れたマージUIを備えたSubclipseです。

CollabNetとは関係ありません。

CollabNetはSubclipseの未登録ユーザーが利用できる改善されたマージクライアントを作成しました。これは、更新サイトからSubclipseをインストールするときにCollabNetマージクライアント機能を選択することで取得できます。


4
私の投稿以来、CollabNetは、サブクリップの未登録ユーザーが利用できる改善されたマージクライアントを作成しました。:)
ChrisH 2010

彼らは持っている?ダウンロードを見つけた唯一の場所は登録が必要です。リンクを投稿してください。
Nemi

4
@Nemi:標準のサブクリップのインストールの一部です。インストールする機能でチェックするだけです。
PeterŠtibraný2010年

新しい情報を投稿自体に組み込んでみませんか?
tshepang 2011年

24

Subversiveを動作させることさえできなかったので、Subclipseと言います;)


2
参照されたブログエントリはほぼ2年前のものであり、テクノロジーの変更はそれよりもはるかに速くなっています。私は両方の製品で古いバグを修正し、その間に新しいバグを挿入したと確信しています!:)
MetroidFan2002 2008

どのブログエントリを意味しますか?
migu

1
この回答の最初のバージョン以降に削除されたもの。
チェ

19

私は実際に両方とも一種の最低だと思います。TortoiseSVNを使用することは、私の意見でははるかに優れたソリューションです。それははるかに堅牢であり、単によりよく機能する傾向があり、私は常にSubclipseおよびSubversiveとの統合の問題を抱えてきました。


4
醜い.svnフォルダーを非表示にするには、Eclipseプラグインが必要です(検索から除外するなど)
Borek Bernard

11
必ずしも; フィルターを使用してそれらを除外できます。それでも、Eclipseの外部ですべて実行する必要がある場合、ファイルのリファクタリング、移動、削除は頭痛の種になるため、EclipseにはSVNプラグインを使用します。
Paul Lammertsma、2009

2
サブクリップが亀よりはるかに優れていることがわかります:ホバーしてEclipse内の変更を確認し、mylynを使用して変更セットを作成し、マルチリポジトリコミット(外部用)を実行できます。コードレビューを行う場合、差分は完全なコードエディターなので、変更が必要な場合に常に「ジャンプバック」する必要はありません。
Stephen

Linuxで実行したことはありません。
2013年

15

どちらも非常に厄介なイボを持っていますが、コマンドラインからチェックアウトしたプロジェクトをSubversiveで動作させることができませんでした。


Subclipseでこれを行うのは簡単でしたか?subversiveは、ファイルシステムの標準的な方法ではないメタデータを格納し、tortiseSVNなどと混合して使用すると信頼性が低下しますか?もしそうなら、私はサブクリップを使用します。
rjmunro 2008

3
Subclipseではまったく問題ありませんでした。私はEclipseに既存のソースから新しいプロジェクトを作成するように指示しただけです。Subversiveの内部の仕組みはわかりませんが、上記を試してもうまくいかなかっただけです。
ハンクゲイ

私は正反対の経験をしました。Subversiveの場合、SVNkitプロバイダーとJavahlのどちらを選択したかによって異なります。
ジェイR.

1
よくわかりません(デフォルトを使用していました)。私はどちらかを使用することをやめ、git-svnを支持しました。
ハンクゲイ

Subversiveでデフォルトの「プロバイダー」を使用しようとしましたが、機能しませんでした。それに関するSOの質問を追跡して、それを変更するオプションを見つけなければなりませんでした。
EpicPandaForce 2015

14

は両方試してみましたが、SubclipseとSubversiveの両方がひどいです。どちらもインストールが困難です。Subversiveを使用する場合、外部SVNクライアントは使用できません

ただし、変更を追跡し、ローカルリポジトリを破損しないようにするには、EclipseにSVNクライアントをインストールする必要があります。

私が持っているSubclipseのがインストールされていますが、使用TortoiseSVNのを実際にマージ/分岐/タグ付け/ comitting行うこと。


3
これは露骨に真実ではありません。私はSubversive、TortoiseSVNとsubversionをまったく問題なく並べて使用しています。Subclipseを使用した当時、互換性に問題があったことは覚えていません。
Paul Lammertsma、

1
これは2009年12月に戻りました。それ以降、クライアントが動作し始めたことを願っています:)
jevon

12

少なくとも機能するため、サブクリップ。

これまで、破壊者は私にとって失敗のバケツでした。Subclipseでチェックアウトしたすべての古いプロジェクトではうまくいきません。


どちらも、他の人がチェックアウトしたプロジェクトを処理できません。Subversiveで古いプロジェクトをチェックアウトした場合、Subclipseはそれらで動作しないことがわかります。どちらか一方を切り替える場合は、それぞれに異なるワークスペースを用意するだけです。しかし、Subclipseの方が適切に機能するため、Subclipseの方が優れています。
user85259 2010

8

確かに両方のIDEプラグインには問題があります。しかし、どちらもTortoiseSVNやコマンドラインのような他のソリューションの並行使用を妨げません。私は仕事で私のプロジェクトのために3つすべてを使用します。

覚えておくべき重要なことは、すべてのクライアントSVNソフトウェア同じSVNファイル形式(SVNのバージョン間で異なる)使用する必要があること、または問題が発生していることです。

もう1つの問題は、クライアントソフトウェアがサーバーとは異なるSVNファイル形式を使用している場合です。(ファイル形式とは、プロジェクトファイルについてSVNが知る必要のあるものを効果的に記録する、見えないように見えるすべての.svnファイルですべての情報が表現される方法を意味します。)これは、混乱を招く可能性があります。1.5サーバーと1.6クライアントの間に文書化されたバグがありますが、現在リンクを見つけることができません。

SVN 1.5.5サーバーとの非互換性のため、上位(IMO)Subclipse 1.6プラグインの実行に問題がありました。そこで、Subversiveに戻しました。動作は遅くなりますが、多少バグがあります(ただし改善されています)。ただし、サーバーが更新されたときにSubclipseに切り替えます。そして、はい、TortoiseSVNでプロジェクトをチェックアウトし、Eclipseにインポートします(高速です)。

他のポスターがここで述べているように、1.6.x形式でファイルを書き込んだ新しいバージョンのTortoiseSVNを実行した場合は機能しませんが、TortoiseSVN 1.5.xに戻した場合は問題なく機能しました。コマンドラインクライアント(Antタスクで活用)についても同様です。


6

Subclipseは、Subversionプロジェクトと最も密接に関連しており、SVNのコア機能をより適切に処理できる可能性が高いため、私はSubclipseを選択しました。まったく機能しない場合は、TortoiseSVNをバックアップとして使用します。


6

ただのアップデート。私は最近Eclipseを再インストールしていて、SubclipseとSubversiveの選択に直面していました。また、Subversiveを機能させるのに苦労していたので、Subclipseを選びました。

私のLinux 64ビットマシンに完全にインストールされ、問題なく動作しています。Update、Commitなどの最も一般的な機能をショートカットにマッピングしました。マージもうまくいきますが、より大きなマージについてはまだTortoiseSVNを使用します。3.5と3.6の両方で試してみましたが、どちらも問題なく動作しました。何らかの理由でキーバインディングが3.6で機能しなかったため、私は3.5を使用することになりました。


6

リポジトリにアクセスするためのプロトコルとしてsvn + sshを使用している場合は、サブクリップを選択することを強くお勧めします。 svn-externalごとに設定した可能性があります。

「資格情報を記憶する」オプションはこのコンテキストでは機能せず、Subversiveの最初のパブリックリリース以降になります。


それも私がSubclipseを選んだ理由です。Subversiveは "svn + ssh"スキームを処理できません。
LS

6

社内でそれらのいずれかを使用していて、独自のEclipseベースの製品にそれらをバンドルしたい場合でも、ビジネスに適したEclipseパブリックライセンスの下で利用できるため、Subclipseを使用するとはるかに使いやすくなります。

一方、Subversiveが完全に機能するには、いわゆるコネクタが必要です。そして、それらは別々の異なるライセンスを持っています。したがって、他のすべての Eclipseプラグインはその1つのEPLのすぐ下にありますが、Subversive機能のためだけに2つまたは3つの異なるライセンスになる可能性があります。それが、これらのコネクターがeclipse.orgでホストされていない理由でもあります。

そして、それがSubversiveのインストール後に動的にダウンロードされる理由です(つまり、eclipse.org更新サイトをミラーリングするだけでは、会社のネットワークでSubversiveのオフラインインストールを使用できなくなります)。


5

2008年5月頃まではSubclipseを使用していましたが、一部のプロジェクトに問題があったため、Subversiveに切り替えて問題なく使用しています。ヘッドレスのバックミンスタービルドのような豪華なことをしている場合は、Subversiveが間違いなく適しています。


5

TortoiseSVNを使用して定期的にバージョンを更新する場合、Subversiveを使用したEclipseがすべてのSVN情報を失い、恐ろしいエラーをスローすることがあります。

TortoiseSVNの新バージョンである理由は、Eclipse SVNコネクタも最新の状態に保たない限り、Eclipse Subversiveが理解できない新しいメタデータを追加することです。

私は通常SVNKitコネクターを使用するため、TortoiseSVN 1.5.xはEclipse SVNKitコネクター1.5.xで動作し、TortoiseSVN 1.6.xはEclipse SVNKitコネクター1.6.xで動作します。


4

Subversiveには、以下に示すようにSubclipseよりも多くの利点があります。しかし、Subversionにはない機能の1つだけが、ブランチの使用に関して非常に重要です。したがって、Subclipseを使用する必要があります。

破壊的な利点:

  • ビューとアイコンはより有益です
  • コミット同期アイテムが更新された後、コミットされたファイルは閉じられます。

サブクリップの利点

  • 2つのブランチを比較する機能

4

+1
サブクリップ-1サブバーシブ

Subversiveは、マイナーなリファクタリングでさえ混乱し、上記のような検証の問題があります。

環境:STS 2.7.2(Galileoベース)


3

私にとってはどちらも良くも悪くもありませんが、SubversiveはEclipse GanymedeプラットフォームのデフォルトのSVNプラグインであるため、Eclipseとよりよく統合される可能性があります。


「Eclipse GanymedeプラットフォームのデフォルトSVNプラグイン」とはどういう意味ですか?GanymedeはEclipseリリース3.4を意味します。サブクリップは3.3以前でのみ機能しますか?
rjmunro

いいえ、Subclipseは新しいバージョンでも引き続き機能します。以前のバージョンでは、これが唯一の選択肢です。
jodonnell 2008

8
Subversiveは「公式」のEclipseプロジェクトです。Subclipseは「公式」のチグリスプロジェクトです(転覆も行う人々)。
John Meagher

3

ブレンドンズの回答への追加として:

バージョン1.5.1以降はSubversionを使用し、最初にSubclipseを使用しました。しかし、マージ機能に大きく依存しているため、より便利でマージダイアログに別の再統合オプションがあるSubversiveに切り替えました。

マージを妨げる可能性のあるバグの1つは、リビジョンを明示的に選択した場合、リストされている最後のリビジョンが使用されないことです。たとえば、「101-100」はr100をマージせず、「100」は何もマージしません。(バージョン0.7.5)

また、CVSプラグインと同じインジケーターを使用しています。


3

私は両方ともHeliosで作業していましたが、Subclipseのサポートが優れているため、少し好みがあります。 bugtraqプロパティの(詳細はこちら)ます。

歴史(題しビューショー別の列bugtraq:labelの表示、BUGID秒)し、コンテキストメニューが(へのリンク「をオープンバグURL」に、専用のアクションを持っているbugtraq:url) -私は破壊的で、この情報のいずれかにアクセスする方法を見つけ出すことができませんでした。


2

ガニメデにアップグレードして以来、Subversiveを使用しています。Linux(UbuntuおよびFedora Core)、Windows XP、Mac OS X.5のEclipseで使用しています。Mac OSでSubversion 1.5.1が適切なセキュリティライブラリを使用するためのいくつかの問題は別として、私は何の問題もありませんでした。Eclipseテクノロジープロジェクトとして採用されていることを考えると、長期的な期待という観点から、私はそれに賭ける傾向があります。


2

私は実際には使用していませんが、組み込みのCVSサポートと同じように、Subversiveは「Check Out As」をサポートしているようです。

同様に、SVNからプロジェクトを取得してWebプロジェクトとして実行できるようにするには、一度に実行できる場合があります。しかし、Subclipseで同じ結果を得るには、ソースを確認して実行するだけです。

mvn eclipse:eclipse -Dwtpversion = 2.0

2

私は両方を使用しましたが、Subclipseが不安定でしたが、Subversive(少なくとも以前のバージョンでは)が誤って資格情報を入力したときに同僚のアカウントをロックアウトしました(subversionリポジトリへのアクセスにネットワークログインが使用されています) )。

Subclipseは、時間の経過とともに混乱する傾向があります。Eclipseが定期的に更新されない場合、Subclipseはファイル追跡情報を失うようです。正直なところ、私はEasy Explorerプラグインを持っているので、履歴と変更情報に(たまに)Subversiveを使用しますが、最近変更したプロジェクトへのコミットと更新にTortoiseSVNを簡単に探索して使用します。


2

Subclipseでプロパティの差分を表示する方法を理解できないことを発見しました。Subversiveでは、履歴ビューで2つのリビジョンを選択し、右クリックして、ポップアップからプロパティの比較を選択します。これで、Subversiveを使い続けることができます。

切り替えを試みた理由は、OS XでのSubversiveの奇妙な動作でした。「svn cache update」と呼ばれるいくつかの自動操作により、「svn update」が実行されるたびにCPUが異常なレベルになり、完了するまでに常に厄介な時間がかかりました。


2

FWIW、私たちは古いバージョンのSVNサーバー(1.4何か)を使用しています。ある時点で、下位互換性を損なうSubclipseへの更新があったことを覚えているようで、要点は「誰もそのような古いバージョンではないはずです」とにかくSVN」。

古いバージョンを処理できるように思われたのはSubversiveだけでした。詳細は覚えていませんが、すみません。


2

私たちはチームで両方を試しました。

Subclipse(Galileo / Heliosからのもの)は、VASを介してSVNサーバーを認証するときに問題が発生したため、TortoiseSVNクライアント、ブラウザー(Internet Explorer 7を除く)の他の場所には問題がありませんでした。

これでインストールが完了Subversiveし、問題は解決しました。


2

SubclipseのSubversiveに対する利点... ITは実際に機能します!

Subclipseに依存するEclipseの共同プラグインを開発するときに、私はずっと前にSubclipseを使用していました。プラグインのSubclipse部分は問題ではありませんでしたが、Ant全体はまだ少し混乱していますが、良い点は、Ant部分がどのように機能するかを理解して、その使用方法を知る必要がないことです。

今日、PDT(他のブログ全体)をインストールしてからSubversiveをインストールしようとしています。これは、多くの場合と同じく、「Eclipse SVNプラグイン」と表現されているためです。4つのコネクタを一度にインストールすることができなかったため、一度に1つずつ、一度に1つずつインストールする必要があり、1つずつSVNサーバーで認証できませんでした。

私はPDTとSubversiveを試しています。プラグインのさまざまな問題に時間を費やすのではなく、時間を節約したいからです。

Subversiveをアンインストールし、Subclipseをインストールして、そのように接続しました。

時間と手間を省き、最初からSubclipseにアクセスしてください。


1

私も両方を使用しました。私のワークスペースには約150のプロジェクトがあり、すべてのプラグインを選択して「リポジトリの同期」と言った場合、Subversiveは非常に長い時間がかかるという問題がありました。UIが非常に長い間フリーズします。Subclipseの方が安定していると思います。

とにかく、私はツールをたくさん組み合わせます。ブランチ全体をチェックアウトするようないくつかのタスクでは、コマンドラインを使用します。他の人にはTortoiseSVNを使用します。私は主に履歴を表示し、ツールで直接比較を実行するためにSubclipseを使用し、時々比較するためにも使用します(ただし、そのためにはBeyond Compareを好みます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.